我想在python中使用dict,但将键/值对的数量限制为X.换句话说,如果dict当前正在存储X个键/值对,并执行插入操作,我想要现有的对将被丢弃。 如果这是最近最less插入/访问键,那将会很好,但这不是完全必要的。 如果这在标准库中存在,请节省我一些时间并指出!
我知道这很容易实现,但我想重用已经存在的东西。 问题我想解决的是,我加载configuration(从XML,所以我想caching他们)不同的页面,angular色,…所以input的组合可以增长很多(但在99%不会)。 为了处理这个1%,我想在caching中有一些最大数量的项目… 直到知道我已经在apache的commons中find了org.apache.commons.collections.map.LRUMap,它看起来很好,但还想检查其他东西。 任何build议?
请不要说EHCache或OSCache等。为了这个问题的目的,假设我想使用SDK来实现我自己的(边干边学)。 鉴于caching将在multithreading环境中使用,您将使用哪种数据结构? 我已经实现了一个使用LinkedHashMap和Collections#synchronizedMap ,但我很好奇,如果任何新的并发集合将是更好的候选人。 更新:当我发现这块金块时,我正在阅读Yegge的最新消息 : 如果你需要恒定的访问时间并且想维护插入顺序,那么你不能比LinkedHashMap做得更好,这是一个非常棒的数据结构。 如果有一个并发版本,唯一可能更好的方法是。 可惜。 在我使用上面提到的LinkedHashMap + Collections#synchronizedMap实现之前,我正在考虑几乎完全一样的事情。 很高兴知道我不只是忽略了一些东西。 根据目前的答案,这听起来像是我最好的select,高度并发的LRU将使用LinkedHashMap使用的一些相同的逻辑来扩展ConcurrentHashMap 。