231gsd 发表于 2016-4-6 09:58:54

memcached和redis缓存

memcached:LRU
支持高并发的原因:多路复用IO(消息通知模式)、多线程模式(CPU的核数)
分布式方案:
# 普通hash分布(取模)

# 一致性hash分布(0-232环)


redis:
LRU: 从数据库中删除一个最近最少访问的key
随机淘汰算法:从数据库中随机删除一个key
TTL淘汰算法:从数据库中删除一个最快过期的key

对象计数器:引用到计数器加1,引用失效-1,为0删除,可以避免并发时问题。


支持的类型:
String:
List:双向链表(实现消息队列,头部取出,尾部放入)
Set:无序集合(投票,无重复)
Sorted Set:有序集合(顶贴次数排序)
Hash:哈希表,类似于数据库表(存用户信息)

事务处理

持久化:
#内存快照:存入二进制文件
#日志追加

主从同步:master上禁止持久化,slave可以
步骤:slave主动连接master;slave发SYCN命令到master请求同步;master备份到rdb;master把rdb文件传给slave;slave清空数据库,把rdb导入。

虚拟内存:物理内存不足时。

清除数据:
#定时清除
#用户获取数据时
页: [1]
查看完整版本: memcached和redis缓存