使用场景
- 缓存
- 计数器
- 分布式会话
- 排行榜
- 最新列表
- 分布式锁
- 消息队列
性能
- 内存型
- 单线程
- rehash、缓存时间戳
- 6.0后IO异步
CPU(纳秒)/ 内存-网卡(微秒)/外存/(微秒)
基础数据类型
- list
- hash
- string
- set
- zset
持久化方案
RDB+AOF
- 提高启动速度
内存淘汰策略
volatile-(lru/ttl/radom/lfu)
- 设置了过期时间(根据使用时间/根据剩余寿命/过期集合随机/根据使用次数)
allkey-(lru/random)
- 全体key(根据使用情况/随机)
lru算法和Redis实现
- 维护链表,将使用过的元素修改到链表头部
- 增加侯选池,比较访问时间加入池中
Redis4.0新增LFU
- 热点数据判读,偶尔访问不是热点数据的识别,增加计数器排序
redis集群
- 主从/哨兵/集群
集群方案
- 客户端分区
- 代理方案redis cluster
虚拟分区-一致性hash变种