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 ,因为这期间还有其它的写请求要进来。
表面上的不同
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 ,因为这期间还有其它的写请求要进来。
上一篇: Surface Pro 6遭越南网站抢先开箱:升级8代酷睿、其它没变
下一篇: PHP 截取 中文
推荐阅读
-
Memcached 和 Redis 总结
-
PHP5各个版本的新功能和新特性总结
-
【转】Redis 与 Memcached 的区别
-
Linux下编译redis和phpredis的方法,redisphpredis_PHP教程
-
php模块memcache和memcached区别分析_PHP
-
windows下redis的安装配置和php扩展使用phpredis
-
html行内元素 和 块状元素 总结_html/css_WEB-ITnose
-
PHP5各个版本的新功能和新特性总结_PHP
-
关于使用key/value数据库redis和TTSERVER的心得体会_PHP教程
-
缓存Redis与Memcached的比较