`
dsxwjhf
  • 浏览: 70711 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

Memcached 和 Redis 总结

阅读更多
一、 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 ,因为这期间还有其它的写请求要进来。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics