1. redis 数据结构
- 基础数据结构
- 字符串String
- 字段Hash
- 列表List
- 集合Set
- 有序集合Zset
- 高级数据结构
- HyperLogLog:基数统计
- Geo:地理位置
- PUB/SUB:订阅发布
2. Redis结构分析
- 单进程单线程队列实现kv数据库
- 完全基于内存
- 数据结构简单,对数据的操作也简单
- 使用多路复用I/O模型
3. 高级操作
- 假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如果将它们全部找出来?
- keys + 正则表达式。会阻塞服务器
- scan 模糊查询。不会阻塞服务器
- 如果有大量的key需要设置同一时间过期,一般需要注意什么?
- key过期时间太集中会导致系统在那个时间卡顿,因此一般在时间上加一个随机值,使其分散。
- redis 如何做持久化
- aof 全称Append-only file 增量持久化,与磁盘的同步取决于sync属性的配置,可以写一条后面添加一条同步一次,文件相对rdb要大
- rdb 全称Redis DataBase 类似于mysql的主从,单独的子进程同步后替换原来的进行持久化,可能会丢失大量数据。使用单独子进程来进行持久化,主进程不会进行任何IO操作,保证了redis的高性能 。