本文尝试总结Memcache与Redis之间的相同点及不一样点,以及关于二者的一些注意问题。html
Redis是单线程因此总体性能不如Memcache,可是平均到每一个核上Redis在存储小数据时比Memcached性能更高。因为单线程多I/O串行限制,Redis在存储更大的数据(大于100k)时性能逊于Memcache。
- Hashes
- Sorted Sets
- Lists
- Sets
可在Redis中执行Lua脚本,例如用Lua实现原子锁。
Redis的delete操做会有毫秒级的延迟,由于Redis的数据回收机制并不是实时触发而是定时检查所需回收的数据是否达到某个筏值,达到才会触发数据回收。
根据 这里( http://www.redis.cn/topics/clients.html )文档翻译:“该顺序是由客户端 socket 文件描述符的数字大小及核心报告客户端事件的顺序决定的,所以顺序能够当作不肯定的。”,顺序在大致上会呈“先到先做的原则”,但小处上呈现的应该是无序性。
若是考虑“ TCP 的 TIME WAIT ”问题,在 MBP 上测试的结果是 17000 左右的请求数就会出现“ Can't assign requested address ”的错误。但这个实际上是受限于操做系统最大文件描述符,在程序上可以使用长连接或单例模式优化。在系统上可经过修改最大文件描述符或减小TCP TIMEWAIT的回收时间。
[暂时想到这些,想到继续补充]redis
源地址 By佐柱数据库
转载请注明出处,也欢迎偶尔逛逛个人小站,谢谢 :)多线程