38得票10回答
Javascript中的LRU缓存实现

Java有LinkedHashMap,可以让你实现99%的LRU缓存。 是否有一个JavaScript的LRU缓存实现,最好是来自可靠的资源,并且: 易于理解 高效(平摊O(1)get/put/delete) ? 我在网上搜索了一下,但没有找到;我认为在Ajax设计模式中找到了一个,...

36得票3回答
不指定maxsize参数使用functools的@lru_cache

lru_cache函数的文档提供了以下函数定义: ...@functools.lru_cache(maxsize=128, typed=False) 这对我来说意味着 maxsize 是可选的。 但是,如果没有参数调用它,它会报错:Python 3.6.3 (default, Oct 24...

36得票6回答
使用LinkedHashMap实现LRU缓存

我试图使用LinkedHashMap实现LRU缓存。在LinkedHashMap的文档(http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMap.html)中提到: 请注意,如果将一个键重新插入到映射中,则不会影响插入顺...

29得票6回答
生产代码中的LRU实现

我有一些C++代码,需要使用LRU算法实现缓存置换。 目前我知道两种实现LRU缓存置换的方法: 为每次访问缓存数据设置时间戳,并在置换时比较时间戳。 使用缓存项的栈结构,如果它们最近被访问,则将它们移到栈顶,因此底部将包含LRU候选。 那么,在生产代码中使用哪个方法更好? 还有其他更好...

19得票1回答
Python中的内存感知LRU缓存?

我正在使用Python 3内置的functools.lru_cache装饰器来缓存一些昂贵的函数。我想尽可能地缓存调用,而不会使用过多的内存,因为缓存太多值会导致崩溃。 在Python中是否有首选的技术或库可以实现这一点? 例如,这个问题引导我使用Go库进行系统内存感知的LRU缓存。类似的...

19得票2回答
获取给定 Redis 键最后一次被访问的时间

我想查看我的redis服务器上特定key的最近访问时间。 我知道每个键都存储了此信息,因为它在redis的LRU算法中用于消除旧键。 是否有一种简单的方法可以查看给定键的此信息?

15得票1回答
LRU与Caffeine

我试图使用Caffeine作为LRU缓存,这样先添加的条目将首先被淘汰。运行了这段代码:final Cache<Object, Object> map = Caffeine.newBuilder() .maximumSize(10) ...

15得票3回答
为类和静态方法配置lru_cache

我正在尝试在Python3中使用lru_cache来加速对我们的Salesforce数据库的常见查询。下面是相关代码,它应该: a) 将不可哈希参数转换为可哈希参数,并且 b) 为这些对象启用LRU缓存。 当我尝试这段代码时,缓存可以调用无参数函数,但似乎不能缓存带有参数的函数调用。...

14得票2回答
Scala中的LRUCache?

我知道Guava有一個優秀的快取庫,但我正在尋找更適合Scala/函數式編程的庫,我可以做像cache.getOrElse(query, { /* expensive operation */})這樣的操作。我也看了一下Scalaz的Memo,但它沒有lru到期功能。

13得票3回答
更新存储的迭代器时出现ConcurrentModificationException异常(用于LRU缓存实现)

我正在尝试实现自己的LRU缓存。是的,我知道Java提供了LinkedHashMap来实现这个目的,但我正在尝试使用基本数据结构来实现它。 从阅读有关此主题的资料中,我了解到需要一个HashMap来进行O(1)键查找和一个链表来管理“最近最少使用”驱逐策略。我找到了这些参考资料,它们都使用标...