Memcached VS Redis
问题:memcached 与 redis 哪个好?
答:这个问题它依赖与工程类别和它的数据。
1.它们都是内存 key/value 类型的高速与高可用的查询表。
2.它们都是集群。
3.它们都是为大项目提供内存对象而不需要去访问数据仓库。
4.访问它们,要比访问数据仓库有更快的速度。
从原理上讲:
它们的部署环境与规模架构不一样。
memcached:
memcached 是扁平数组 由一个hash值共享(我理解是一个hashid 决定一个扁平数组数据)
redis:
redis 是 cluster-slave 架构,
下面有张图,可以反映出它们的原理与架构:
创造一个技术与架构设计是非常难的,尤其是很重要的缓存结构。
下面几个部分是一些它们的有点与缺点:
memcached 优点:
1.不复杂
2.配置简单
3.宏观命令很少,单个主机。
4.在集群中,使用单主机,使用hash值去查找key。(易于理解,结构简单)
5.像摇滚音乐一样工作(翻译的无语,) , 原句: Runs like a rock -- memcached requires a nuclear strike to fall over
6.很多年的老产品,
7。很多开发语言都有memcached库
memcached缺点:
1.只有内存缓存功能,别的什么功能都没有
2.不能通过 AWS zons 共享缓存。
3.不能满足一个主机系统的所有缓存需求
4.添加一个集群成员需要从新配置和重启客户端。
redis优点:
1.可以用多种方式存放缓存,比如list,array,sets,sorted sets
2.可以同时操作多个流水线命令行
3.阻塞读取。
4.可以批量插入缓存数据。
5.可以通过多个slave redis实例划分缓存。
6.可以把数据推到硬盘里。
redis缺点:
1.配置复杂。
2.守护进程,当从变主后,它会自动失去备原功能,这在不稳定的redis分支上是持久性的。
3.主从架构意味着如果主进程出现故障,守护进程将不能工作,导致系统不能正常工作。
4.需要很多系统管理员去监控redis,去分配,去均衡。