Redis原理简述
Redis 有哪些特性
1. 特性
- key-value 型内存数据库
- 单线程——原子化操作
- 支持lua脚本
- 发布与订阅
- 可持久化
- 逐出与过期
- ……
2. 持久化
- RDB:经过压缩的二进制文件;fork子进程进行操作
- AOF:保存所有写命令;先写缓存再同步至AOF文件;文件过大时会触发AOF重写
3. 过期:key到达了TTL时间
- 惰性删除 - 读、写操作前判断
- 定期删除 - 在定时事件中删除
- 抽样删除:配置为定期删除时,每次只选择一部分key来判断是否已经过期
4. 逐出:执行write但内存达到上限时,强制将一些key删除
- 逐出范围:allkeys、volatile
- 逐出策略:LRU、random、ttl
- 每次写入前都会判断,逐出会阻塞请求
- 抽样删除:LRU和ttl都是抽样进行计算的