服务性能出现瓶颈,有些逻辑需要多次进行 reids 访问。 虽然每次 redis 访问时间较短,但是总体下来网络开销还是吃不消。
现在明确的解决方案是使用 进程内的缓存 来解决。调研了几个现有的 缓存 库,都不太满足需求。
- repoze/repoze.lru,看文档应该是不支持 timeout
- jlhutch/pylru,也是不支持 timeout
- stucchio/Python-LRU-cache, 支持 timeout, 但是实践发现装饰器不能用在成员函数上
不知道 python 中是否有个缓存组件能够同时支持:
- 对类成员函数使用装饰器
- LRU (提升内存使用效率)
- max (防止内存使用过多)
- timeout 设置(缓存涉及黑名单,必须要定时从 redis 内重新加载)
如果没有,就只能自己在基于上面的几个缓存组件修改。