2015年9月2日 14:04:19
总会被问到两者的区别, 在这里总结下:
redis 有内置的多种数据结构, list(可用于实现小型队列), hash, set, zset...; memcache 只是简单的键值存储
redis 有持久化机制, 还利用了虚拟内存, memcache是纯内存,挂了就没有了(缓存穿透)
redis 借鉴了libevent的部分功能,实现自己的事件机制, 安装时不依赖libevent
redis 借鉴了操作系统的虚拟内存机制, 只是每次加载硬盘数据可以自己控制(例如,redis读一个字节, 将连续的512字节读入内存; OS则是读取整个page页)
redis 是单线程, 没有锁机制, 但在执行命令时有事务(原子性)机制, memcache 则是通过cas(类似乐观锁)锁机制达到数据一致性的效果
redis 可以设置主从复制, memcache没有
redis 单进程只可以使用一个cpu核; memchache 可以使用多个核
redis 有过期机制
memcache 可以存放图像, 视频, 文件
memcache 限制键的字符长度以及值的大小