Redis和Memcached的区别

来源:互联网 发布:qq秀照片秀网络繁忙 编辑:程序博客网 时间:2024/05/17 23:24

1、Memcached出来的时间较redis早
2、redis支持大数据存储,mecached不适合
3、Memcached只支持简单的key/value存储,redis支持list、set、hash、zset、sorted set数据存储
4、Memcached宕机后数据就会丢失,redis支持数据持久化,内存中的数据保持在磁盘中,重启后可以加载进行使用
5、redis支持海量数据,分布式系统支持,支持分片、哨兵模式。
分片有3种方式
a、代码编写调用不同的redis库
b、使用代理工具
c、redis集群,随机访问。
6、Redis支持数据的备份,即master-slave模式的数据备份;
7、应用场景不一样:Redis出来作为NoSQL数据库使用外,还能用做消息队列、数据堆栈和数据缓存等;Memcached适合于缓存SQL语句、数据集、用户临时性数据、延迟查询数据和session等。
8、虚拟内存–Redis当物理内存用完时,可以将一些很久没用到的value 交换到磁盘;
9、redis中内存使用到一定阈值时会根据一定的算法将比较久的或者过期了的数据保存到磁盘中,将redis内存中数据删除,但会保存所有的key,当查询改key值获取不到数据则去磁盘中加载。
10、对于单纯只有IO操作来说,单线程可以将速度优势发挥到最大
11、Redis跟据存储命令参数,会把带过期时间的数据单独存放在一起,并把它们称为临时数据,非临时数据是永远不会被剔除的,即便物理内存不够,导致swap也不会剔除任何非临时数据(但会尝试剔除部分临时数据),这点上Redis更适合作为存储而不是cache。
12、Memcached提供了cas命令,可以保证多个并发访问操作同一份数据的一致性问题。 Redis没有提供cas 命令,并不能保证这点,不过Redis提供了事务的功能,可以保证一串 命令的原子性,中间不会被任何操作打断。
13、读取方面尤其是针对批量读取性能方面memcached占据优势。

 总结:
  1.Redis使用最佳方式是全部数据in-memory。
  2.Redis更多场景是作为Memcached的替代者来使用。
  3.当需要除key/value之外的更多数据类型支持时,使用Redis更合适。
  4.当存储的数据不能被剔除时,使用Redis更合适。

参考网站:http://blog.csdn.net/tonysz126/article/details/8280696/