Memcache和Redis区别

memcache和redis主要区别

      在工作中经常使用memcache和redis,两者都是nosql数据库,但是在具体应用场景下应该怎么选择呢,本文从以下几个方面分析两者之间的不同

网络IO模型

      memcache是多线程非阻塞IO复用网络模型,分为Master线程和worker子线程,Master线程负责监听网络连接,接受请求后,传递给worker线程, 在worker线程中进行命令接受处理和返回,memcache启动时可以通过 `memcached -t num` 设置worker线程的数目,网络层使用libevent封装的事件库,多线程模型可以发挥多核作用,但是也引入了缓存一致性和锁的问题。

      Redis使用单线程IO复用模型,自己封装了一个aeEvent事件处理框架,主要实现了epoll 、kqueue、select,对于单纯只有IO操作来说,单线程可以将速度发挥到最大,但是redis也提供了一些简单的计算功能,排序和聚合,对于这些操作,单线程模型实际会严重影响整体吞吐量,CPU计算过程中,整个IO调度室被阻塞的。

内存管理

      Memcache使用了Slab Allocation的方式,memcache将内存割分成固定大小的slab,每个slab又可以分为大小相同的许多个page,每个Page中分为大小相同的chunk,chunk是保存数据的单位,每个slab中chunk大小是不相同的,使用slab和大小不同的chunk来管理内存,item根据大小不同选择合适的chunk存储,内存池可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值