配运基础数据缓存瘦身实践
💡
原文中文,约3100字,阅读约需8分钟。
📝
内容提要
中台配运组采用缓存技术、增加日志、设置key前缀、循环遍历删除key、使用scan命令、控制每次返回结果的最大条数,以提高京东物流基础数据的读取能力,节省资源成本。
🎯
关键要点
- 中台配运组负责京东物流的基础数据管理。
- 缓存技术在基础数据场景中广泛使用,以提高数据读取能力。
- 商家基础资料和C后台系统进行了缓存数据的优化试点,显著节省了硬件资源成本。
- 商家基础资料Redis数据量从45G降为8G,C后台Redis数据量从132G降为7G。
- 使用@Caceh注解组件作为缓存方式,早期版本未设置过期时间导致僵尸key的产生。
- 使用keys命令遍历所有key会阻塞线程,复杂度为O(n),不适合大数据量。
- scan命令提供了非阻塞的增量式迭代,时间复杂度为O(N),可控制返回结果的最大条数。
- scan命令可能返回重复数据,需注意游标的迭代完成判断。
- Redis的字典表在扩容和缩容时可能导致数据重复或遗漏。
- 通过本次Redis瘦身实践,显著节约资源并降低成本,学习到命令底层设计思想。
➡️