单线程和多线程
- 6.0 之前:单线程
- 6.0 之后:多线程
网络请求采用多线程
核心命令执行采用单线程
持久化、集群数据同步等采用额外线程
跳表
- 将有序的链表改造为支持近似‘折半查找’算法,可以进行快速的插入、删除、查找

redis key过期内存没有释放
针对set 设置过期时间,后续修改没有增加过期时间,将变成永久的
redis key 过期策略
惰性策略
当读写一个过期的key时,判断是否过期,将过期的key进行清理
定时策略
定时对key进行扫描,将过时的key进行清理
没有配置过期时间,被主动删除
超出maxmemory限制,触发主动清理策略
1、越早过期优先清理
2、随机清理
3、LRU算法 淘汰很久未被访问的数据,最近一次时间为准
4、LFU算法 淘汰访问频率最低的数据
删除key会阻塞线程?
1、删除单个指定key, 不会阻塞线程
2、删除多个指定key(列表、集合、有序集合、哈希表) 会阻塞线程
主从、哨兵、集群 优缺点


集群
集群是redis的分布式数据库,将数据分布到多个节点,每个节点负责一部分数据,多个节点之间通过复制和分片实现数据同步,从而实现高可用和高性能

