欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Memcached 和 Redis 总结

程序员文章站 2024-01-11 14:16:04
...
一、 Memcached VS Redis

表面上的不同
1. Memcached 多线程, Redis 单线程;
2. Redis 支持持久化;
3. Redis 支持的数据结构更丰富;

稍微深层次的不同
1. 内存满时, Memcached 考虑丢弃, Redis 考虑 swap 进硬盘;
2. 网络 I/O 模型不同: Memcached 使用线程池处理每一个 pipe , Redis 使用 epoll 模型;
3. 内存管理不同: Memcached 使用预分配的、各种固定大小的 trunk , Redis 使用自己优化过的 malloc/free 。
4. Memcached 本身不支持分布式,需要客户端通过像一致性哈希这样的分布式算法来实现分布式存储。 Redis 支持。此外, Redis 还具备像是主从、备份等很接近关系型数据库的功能。

二、 Redis 是如何持久化的
Redis 有两种实现持久化的方式:
1. 延时快照,就像数据库全量备份。备份期间需要 fork 出一个子进程,在副本上执行硬盘写入操作。
2. 及时 log ,像是 log4j 。它会对 log 先做整理,把同一个 key 的多个操作合并为一个,再执行。这个整理的过程也需要 fork ,因为这期间还有其它的写请求要进来。
相关标签: redis memcached