apisix 中的 lrucache

apisix 中的 lrucache

💡 原文中文,约6500字,阅读约需16分钟。
📝

内容提要

在APISIX 3.10.0版本中,lrucache结合了resty-lrucache和resty-lock机制。创建时可设置类型、容量和过期时间,默认插件类型容量为8,其他类型为1024,过期时间分别为5分钟和60分钟。fetch_valid_cache函数用于获取缓存,若未命中则调用create_obj_fun创建并缓存对象。plugin_ctx函数用于插件缓存对象,需在公共模块中使用extra_key以避免不同插件获取相同对象。

🎯

关键要点

  • APISIX 3.10.0版本中,lrucache结合了resty-lrucache和resty-lock机制。
  • 创建lrucache时可设置类型、容量和过期时间,默认插件类型容量为8,其他类型为1024,过期时间分别为5分钟和60分钟。
  • fetch_valid_cache函数用于获取缓存,未命中时调用create_obj_fun创建并缓存对象。
  • plugin_ctx函数用于插件缓存对象,需在公共模块中使用extra_key以避免不同插件获取相同对象。
  • serial_creating选项决定是否在lrucache流程中上锁,确保缓存对象的串行创建。
  • fetch_valid_cache函数处理缓存命中和过期逻辑,支持使用陈旧值的配置。
  • 提供了一个快捷创建插件lrucache的函数,简化了缓存对象的创建过程。
  • 使用plugin_ctx时需注意extra_key的设置,以避免不同插件间的资源冲突。
➡️

继续阅读