redis和Memcached

redis和memcached对比:
1、redis支持服务端的数据操作:
redis相比memcached来说,拥有更多的数据库结构和并支持更加丰富的数据操作。
memcached中需要将数据拿到客户端进行类似的修改再set回去,大大增加了网络IO的次数和数据体积。
redis中这些复杂的操作通常和一般的get/set一样高效。
所以,如果需要缓存能够支持更加复杂的结构和操作,redis可以作为首选。
2、内存使用效率的对比:
使用简单的key-value存储的话,memcached的内存利用率更高,而如果redis使用hash结构来做key-value存储,由于其组合式压缩,其内存利用率高于memached。
3、性能对比:
由于redis只使用单核,而memcahed可以用多核,所以平均每一个核上redis在存储小数据时相比memcahed性能更高。而在100k以上的数据中,memcached性能要高于redis.

4、数据类型支持不同:
与memcached仅支持简单的key-value的结构数据记录不同,redis支持的数据类型要丰富的多。最为常用的数据类型主要由五种:String,Hash,List,Set和Sorted Set.Redis内部使用一个
redisObject对象来表示所有的key和value.

5、内存管理机制:
在redis中,不是所有的数据都一直存储在内存中。这是memcahed相比一个最大的区别。当物理内存用完时,redis可以将很久没有用的value交换到磁盘。

对于像redis和memcahed这种基于内存的数据库系统来说,内存管理的效率高低是影响系统性能的关键因素。

memcached默认使用Slab Allocation机制管理内存,其主要的思想按照预先规定大小,将分配的内存分割成特定长度的块存储长度相应的key-value数据记录,以完全解决内存随便问题。

redis的内存管理主要通过源码中zmalloc.h和zmalloc.c两个文件来实现。redis为里方面内存管理,在分配一块内存之后,会将这块内存的大小存入块的头部。

6、数据持久化支持:

redis虽然是基于内存的存储系统,但是它本身是支持内存数据的持久化的,而且提供了两种主要持久化的策略:RDB快照和AOF日志。而memcached是不支持数据持久话操作的。

7、集群管理的不同:

memcached是全内存的数据缓冲系统,redis虽然支持数据的持久化,但是全内存毕竟才是其高性能的本质。作为基于内存的存储系统,机器物理内存的大小就是系统能够容纳的最大数据量。如果需要处理的数据量超过了单台机器的物理内存的大小,就需要构建分布式集群来扩展存储能力。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值