配运基础数据缓存瘦身实践

💡 原文中文,约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瘦身实践,显著节约资源并降低成本,学习到命令底层设计思想。
➡️

继续阅读