Redis笔记整合1
需积分: 0 113 浏览量
更新于2022-08-08
收藏 994KB DOCX 举报
Redis 是一款高性能的键值存储系统,广泛应用于缓存和数据持久化。在Redis中,设置键的过期时间是一项重要的功能,这有助于管理短期存储的数据,如会话、验证码或限时优惠等。过期策略包括定期删除和惰性删除。
定期删除是Redis默认的处理方式,每隔100毫秒,Redis会随机检查一部分带有过期时间的键并删除已过期的键。这种方法减少了CPU的负载,但可能导致某些过期键未被及时清理。
惰性删除则是在访问键时才检查其是否过期,如果过期则删除。这种方式节省了CPU资源,但可能导致过期键占用内存直至被访问。
为了保证数据的最终删除,Redis提供了内存淘汰机制,通过`maxmemory-policy`配置来设定策略。共有六种策略:
1. `volatile-lru`:优先淘汰最近最少使用的带有过期时间的键。
2. `volatile-ttl`:优先淘汰即将过期的带有过期时间的键。
3. `volatile-random`:随机淘汰带有过期时间的键。
4. `allkeys-lru`:在所有键中淘汰最近最少使用的键,不论是否有过期时间。
5. `allkeys-random`:随机淘汰任何键。
6. `no-eviction`:禁止淘汰,新写入操作会失败。
Redis的持久化技术之一是AOF(Append Only File)日志,它记录每次写操作命令,确保在Redis重启时可以通过重放这些命令恢复数据。AOF的优势在于数据安全性较高,但可能会导致写操作的延迟。AOF日志的写入流程包括将命令追加到缓冲区,然后通过write()系统调用写入到内核缓冲区,最后由内核决定何时将数据实际写入硬盘。Redis提供了三种`appendfsync`配置选项来控制写回策略:`always`(每次写操作后立即写回)、`everysec`(每秒写回一次)和`no`(交由操作系统决定写回时机)。
不同的写回策略在数据安全性和系统性能之间做出权衡。`always`策略保证数据安全,但可能导致写操作阻塞;`everysec`策略在数据安全和性能间取得平衡;而`no`策略则将性能优化到极致,但数据丢失风险增加。
Redis的过期策略和AOF持久化机制是其作为高效缓存和数据存储的关键特性,它们共同确保了数据的生命周期管理和数据安全。在实际应用中,应根据业务需求选择合适的策略来平衡性能与数据完整性。
宏馨
- 粉丝: 27
- 资源: 293
最新资源
- 技术册投标文件的的查重
- 通信原理(第七版 樊昌信 曹丽娜)思维导图
- genad-hGridSample-test.hbm
- cvtocc-shanghai.hbm
- k8s安装ingress-nginx
- dnSpy-net-win32-222.zip
- mongoose-free-6.9
- 德普微一级代理 DP100N06MGL PDFN3.3*3.3 TRMOS N-MOSFET 60V, 8mΩ, 45A
- 【java毕业设计】SpringBoot+Vue幼儿园管理系统 源码+sql脚本+论文 完整版
- 德普微一级代理 DP021N03FGLI DFN5*6 DPMOS N-MOSFET 30V 180A 1.8mΩ