当前位置: 首页 > 面试题库 >

具有生存时间的Python内存缓存

申黎明
2023-03-14
问题内容

我有多个运行同一进程的线程,它们需要能够互相通知,在接下来的n秒钟内不应进行某些处理,如果可以的话,这不是世界末日。

我的目标是能够将字符串和TTL传递到缓存,并能够以列表的形式获取缓存中的所有字符串。缓存可以存在于内存中,而TTL不会超过20秒。

有人对如何实现这一目标有任何建议吗?


问题答案:

您可以使用以下expiringdict模块:

库的核心是ExpiringDictclass,它是一个有序字典,具有用于缓存目的的自动过期值。

在描述中,他们不谈论多线程,因此为了避免混乱,请使用Lock



 类似资料:
  • This is the length of time in seconds that a template cache is valid. Once this time has expired, the cache will be regenerated. $caching must be set to "true" for $cache_lifetime to have any purpose.

  • 问题内容: 我正在为我的PHP驱动的网站寻找内存缓存。它不是高流量的网站,我只想缓存数据和某些页面的某些部分以提高性能。数据大小从几字节到几kB不等。我目前正在使用xCache,并且没有问题。 切换到内存缓存或Redis更好吗?有没有更好的选择? 问题答案: 如果您没有任何明显的问题,为什么要立即切换?内存缓存或Redis可能更好,但是如果您现在不需要它们,最好保留它们。只要您的缓存策略是正确的,

  • 本文向大家介绍虚拟内存和缓存内存之间的区别,包括了虚拟内存和缓存内存之间的区别的使用技巧和注意事项,需要的朋友参考一下 在计算机环境中,内存是至关重要的部分,因为它是唯一负责系统性能和系统存储容量的部分。众所周知,内存负责任何应用程序的加载和执行,还用于存储其数据,以后可被其使用,因此在加载或安装应用程序之前了解系统的内存配置非常重要。 现在,在本主题中基本上将要讨论的是两种类型的存储器,即虚拟存

  • 是否有可能在内存中实现缓存以避免完全堆消耗? 我的spring boot java应用程序使用内存缓存,过期策略设置为1小时(咖啡因库用于缓存目的)。在此之后,所有缓存实例都处于旧代,需要收集完整的GC。现在,当XMX设置为10GB时,我可以看到经过几个小时的测试,我的缓存包含大约100k个实例,但在heap中(正好是旧一代),我可以找到数百万个缓存对象的实例。是否有可能在内存中使用缓存并避免这种

  • 问题内容: 你是否知道在给定超时后会自动清除条目的Java Map或类似标准数据存储?这意味着老化,旧的过期条目会自动“老化”。 最好在可通过Maven访问的开源库中? 我知道自己实现该功能的方法,并且过去已经做过几次,所以我并不是在这方面寻求建议,而是寻求指向一个好的参考实现的指针。 像WeakHashMap这样的基于WeakReference的解决方案不是一个选择,因为我的密钥很可能是非int

  • 大多数LRU缓存教程强调组合使用双向链表和字典。字典保存该值和对链表上相应节点的引用。 当我们执行删除操作时,我们从字典中的链表中查找节点,我们必须将其删除。 现在这里是它变得奇怪的地方。大多数教程认为,我们需要前面的节点才能从链表中删除当前节点。这样做是为了获得O(1)时间。 但是,这里有一种方法可以在O(1)时间内从单链接列表中删除节点。我们将当前节点的值设置为下一个节点,然后杀死下一个节点。