关于Memcache与Redis

本文尝试总结Memcache与Redis之间的相同点及不同点,以及关于两者的一些注意问题。

相同


  • 同为内存型数据库
  • 当数据写满后均以LRU机制替换数据
  • 分布式支持

不同


Memcache

  • 多线程
  • 最大key为512B,最大value为1M

Redis

  • 单线程
Redis是单线程所以整体性能不如Memcache,但是平均到每个核上Redis在存储小数据时比Memcached性能更高。由于单线程多I/O串行限制,Redis在存储更大的数据(大于100k)时性能逊于Memcache。
  • 最大key为512M,最大value为512M
  • 持久化
  • 更丰富的数据类型
  1. Hashes
  2. Sorted Sets
  3. Lists
  4. Sets
  • Lua脚本支持
可在Redis中执行Lua脚本,例如用Lua实现原子锁。  
  • 关于Redis的delete
Redis的delete操作会有毫秒级的延迟,因为Redis的数据回收机制并非实时触发而是定时检查所需回收的数据是否达到某个筏值,达到才会触发数据回收。
  • 关于Redis执行顺序
根据 这里( http://www.redis.cn/topics/clients.html )文档翻译:“该顺序是由客户端 socket 文件描述符的数字大小及核心报告客户端事件的顺序决定的,因此顺序可以看成不确定的。”,顺序在大体上会呈“先到先作的原则”,但小处上呈现的应该是无序性。
  • 关于Redis最大连接
如果考虑“ TCP 的 TIME WAIT ”问题,在 MBP 上测试的结果是 17000 左右的请求数就会出现“ Can't assign requested address ”的错误。但这个其实是受限于操作系统最大文件描述符,在程序上可使用长链接或单例模式优化。在系统上可通过修改最大文件描述符或减少TCP TIMEWAIT的回收时间。

[暂时想到这些,想到继续补充]

源地址 By佐柱

转载请注明出处,也欢迎偶尔逛逛我的小站,谢谢 :)

转载于:https://my.oschina.net/u/999231/blog/687973

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值