xgwshen

导航

Redis和memcached的区别

注:此文复制而来,只为便于学习!

  • redis与 memcached相比,redis支持key-value数据类型,同事支持list、set、hash等数据结构的存储。
  • redis支持数据的备份,即master-slave模式的数据备份。
  • redis支持数据的持久化。
  • redis在很多方面支持数据库的特性,可以这样说他就是一个数据库系统,而memcached只是简单地K/V缓存。
  • 它们在性能方面差别不是很大,读取方面尤其是针对批量读取性能方面memcached占据优势。当然redis也有他的优点,如持久性、支持更多的数据结构。
  • 所以在选择方面如果有持久方面的需求或对数据类型和处理有要求的应该选择redis。
  • 如果简单的key/value 存储应该选择memcached。
  • Redsi和Memcached区别总结

    1. 首先谈谈Redis和Memcached它们都是缓存在内存中的,唯一的区别就是Redis它本身会周期性的把 更新的一些数据写入到磁盘或者修改操作写入追加的记录文件中,并且在此基础上实现master-slave主从同步
    2. 至于在性能方面Redis是高性能的key-value内存数据库。经过官方性能测试结果:set操作每秒110000次,get操作每秒81000次
    3. Redis它本身支持的数据类型相对较多,包括string、list、set(集合)、zset(有序集合)。
    4. Redis的数据持久性主要是有快照和AOF日志两种持久方式,在实际应用的时候,一定要注意配置文件快照的参数,防止频繁做dump。
    5. Memcached是高性能的分布式内存缓存服务器,通过缓存数据库查询结果,减少数据库的访问次数,来提高动态Web等应用的速度、提高可扩展性。
      1. Memcached作为分布式缓存服务器的特点:                                                                                               
        • 协议简单
        • 基于libvent的事件处理
        • 内置内存存储方式
        • memcached不互相通信的分布式
      2. Memcached默认的支持最大的存储对象为1M。这个值是由其内存分配机制决定的。(它默认采用Slab Allocator的机制分配、管理内存。)
      3. Memcached set数据的时候是默认压缩的
      4. 适合Memcached的业务场景:
        1. 站点访问量非常大的动态网页。因为大部分 数据请求都是读操作那么memcached能够有效地减小数据库的负载。
        2. 假设数据库server的负载比较低但CPU使用率非常高,这时能够缓存计算好的结果( computed objects )和渲染后的网页模板(enderred templates)。
        3. 缓存一些非常小可是频繁访问的文件。
      5. Memcached能够接受最大的key的最大长度为250个字符
    6. Redis 
      1. Redis作为高性能的key-value数据库具有以下特征
        1. 多样化
        2. 持久性
        3. 主从同步                                                                                       
      2. Redis支持丰富的数据类型常见主要有五种:String、Hash、List、Set和Sorted Set。Redis通常将数据存储于内存中,或被配置为使用虚拟内存。Redis有一个很重要的特点就是它可以实现持久化数据,通过两种方式可以实现数据持久化:使用RDB快照的方式,将内存中的数据不断写入磁盘;或使用类似MySQL的AOF日志方式,记录每次更新的日志。前者性能较高,但是可能会引起一定程度的数据丢失;后者相反。 Redis支持将数据同步到多台从数据库上,这种特性对提高读取性能非常有益。
    7. 慎重注意的地方
      1. Memcached单个key-value大小有限,一个value最大只支持1MB,而Redis最大支持512MB
      2. Memcached只是内存缓存,对可靠性无太大要求,而Redis更倾向于内存数据库,因此可靠性方面要求高
      3. 从本质上讲Memcached只是单一的key-value内存Cache,而Redis是数据结构内存数据库,支持五种数据类型,因此Redis出了单纯缓存以外,还可以处理一些简单的逻辑,而且也可以作为数据库使用
      4. 新版本(3.0)的Redis是指集群分布式,也就是说集群本身均衡客户端请求,各个节点可以交流,可拓展行、可维护性更强大。      

posted on 2017-06-28 15:21  xgwshen  阅读(98)  评论(0编辑  收藏  举报