当前位置: 首页 > news >正文

旺苍网站建设海南房产网

旺苍网站建设,海南房产网,小型企业互联网解决方案,怎样注册小程序文章目录 cachetools缓存策略缓存操作 TTLCache cachetools是一个Python第三方库#xff0c;提供了多种缓存算法的实现。 cachetools 使用前需要先安装pip install cachetools#xff0c;说明文档参见https://cachetools.readthedocs.io/en/latest/。 cachetools提供了五种… 文章目录 cachetools缓存策略缓存操作 TTLCache cachetools是一个Python第三方库提供了多种缓存算法的实现。 cachetools 使用前需要先安装pip install cachetools说明文档参见https://cachetools.readthedocs.io/en/latest/。 cachetools提供了五种缓存类型 CachedLRUCacheTTLCacheLFUCacheRRCache 缓存策略 cachetools提供了以下常见的缓存策略当需要为新的条目腾出空间时如何移除已有条目 Least Recently Used (LRU): 移除最近最少使用的条目这是一种常见的缓存策略适用于大多数场景。Most Recently Used (MRU): 移除最近最常使用的条目这种策略适用于一些特殊场景例如当最近访问的数据不太可能再次访问时。Random Replacement (RR): 随机移除一个条目。这种策略实现简单但性能相对较差。First-In-First-Out (FIFO): 按照条目添加到缓存的顺序进行移除这种策略适用于一些特定场景例如缓存的数据具有固定生命周期。 cachetools中允许自定义缓存策略只需继承cachetools.Cache类并实现相应的方法。 from cachetools import Cacheclass SizeLimitedCache(Cache):def __init__(self, maxsize):super().__init__(maxsizemaxsize)def __getitem__(self, key, cache_getitemCache.__getitem__):return cache_getitem(self, key)def __setitem__(self, key, value, cache_setitemCache.__setitem__):if len(self) self.maxsize:self.popitem() # 删除一个缓存项cache_setitem(self, key, value)# 使用自定义缓存策略 custom_cache SizeLimitedCache(maxsize10) for i in range(20):key key-{}.format(i)custom_cache[key] iprint(custom_cache.items())缓存操作 创建缓存时都需指定最大条目数lru cachetools.LRUCache(maxsize100) maxsize参数代表的是缓存中可以存储的最大条目数量 缓存的添加、获取等类似dict操作 # 添加缓存项 lru[key] value# 获取缓存项 # value lru.get(key) # 不存在时返回None value lru.get(key, default_value)# 删除缓存项 if key in lru:del lru[key]# 更新缓存项 lru[key] new_value其他有用函数与属性 clear()清空Cachepopitem()根据策略移除一项currsize获取当前缓存条目数量 TTLCache TTLCache可设定过期时间过期后缓存条目自动失效 expire(self, timeNone)移除过期若time为None在使用当前时间条目get时不会更新过期时间只有重新设定数据cache[key]data才会更新过期时间已满时添加新条目会先移除过期条目然后尝试移除第一条。 def expensive_fun(arg1, arg2):key (arg1, arg2)# 如果缓存中已经有计算结果直接返回result cache.get(key)if result is not None:cache[key] result # extend expire-timereturn result, cached# 执行计算并将结果保存到缓存中time.sleep(1) # expensive calcresult arg1 arg2cache[key] resultreturn result, re-calc## cache test cache TTLCache(maxsize5, ttl10) for i in range(10):print(datetime.now(), expensive_fun(i, 2))print(cache.items())print(cache.items())for i in range(5):time.sleep(3)print(datetime.now(), expensive_fun(1, 2)) print(cache.items())# 等待缓存项已经过期 time.sleep(11)# 再次调用需要重新计算因为缓存项已经被清除了 print(datetime.now(), expensive_fun(1, 2))
http://www.ho-use.cn/article/10822123.html

相关文章:

  • 中山网站制作方案阿里云空间做网站
  • 网站开发必看书籍宝安中心医院怎么样
  • 生小孩去什么网站做登记浏览器网页视频下载
  • 网站开发涉及到哪些知识产权wordpress 替换图标
  • 网站开发建设推荐用书曲阳做网站
  • 经典网站欣赏15年做那个网站致富
  • 广州公司电商网站建设企业网站的建设步骤包括
  • 绍兴网站制作下载58同城本地版
  • 网站空间使用方法深圳全网建站公司推荐
  • 网站备案率定义设计个企业网站网页咋弄
  • 广州网站建设优化公司炎陵做网站
  • 网站改版解决方案wordpress搜狗
  • 北京公司模板网站好一起做单网站怎么样
  • 校园网二手书交易网站建设wordpress建站是什么意思
  • 骏域建网站做一个网站成本多少钱
  • 重庆网站开发企业郑州做网站公司哪家好
  • 做软装平台网站做电商需要什么
  • 做网站后面维护要收钱吗无锡网站建设方案优化
  • 3d建模怎么做网站旋转wap网站下载
  • 湖州童装网站新闻采集源码wordpress
  • 玉溪市住房城乡建设局网站青州网站建设
  • 网站建设运营合作合同做网站如何与网络公司沟通
  • 百度怎么注册公司网站百度百科搜索入口
  • 注册网站做网销2012r2网站建设
  • 连云港网站建设价位怎么做可以聊天的网站吗
  • 网站开发电脑内存要多少徐州网站排名公司
  • 金华网站建设开发湖南信息网官方网站
  • 我要做个网站传媒网站如何设计
  • 成都学习网站建设营销渠道管理
  • 近五年网站开发参考文献网站恶意刷新