1.Redis有哪些数据类型
2.Redis内存管理(数据淘汰策略)
3.Redis生产问题
数据过期策略
- set name heima 10(10秒后过期)
- 惰性删除
- 设置了key的过期时间后,在需要key时,检查是否过期,如果过期直接删除
- 对CPU友好,只有使用到key的时候才会去检查key
- 对内存不友好,如果一个key已经过期,但是一直没有使用,那么会一直存在内存中
- 定期删除
- 每过一段时间,对一些key进行检查,删除过期的key
- 定期清理的两种模式,FAST模式(不固定,两次清理时间不超过2ms,一次清理不超过1ms)和SLOW模式(定时任务,每次清理不超过25ms)。
- 惰性删除配合定期删除
- RDB和AOF各有优点,如果对数据安全性要求较高,会结合使用,下面是他们的对比
RDB | AOF | |
---|---|---|
持久化方式 | 定时对整个内存做快照 | 记录每一次执行的命令 |
数据完整性 | 不完整,两次备份之间会丢失 | 相对完整,取决于刷盘策略 |
文件大小 | 会有压缩,文件体积小 | 记录命令,文件体积大 |
宕机恢复速度 | 很快 | 慢 |
数据恢复优先级 | 低,因为数据完整性不如AOF | 高,因为数据完整性更高 |
系统资源占用 | 高,大量CPU和内存消耗 | 低, 主要是磁盘IO资源,但AOF重写时占用大量CPU和内存资源 |
使用场景 | 可以容忍分钟的数据丢失,追求更快的启动速度 | 对数据安全性要求较高 |