Redis:具有大小限制和LRU逐出功能的hashmap

时间:2017-11-25 13:38:58

标签: java database caching redis lru

让我说我在redis商店里有一些钥匙。我想在一个新的hashmap结构中保留一些键值对。我还希望限制此hashmap的大小,并在其大小(hashmap)超出限制并且不触及已存在的redis数据结构的其余部分时逐出最近最少使用的键值对。 redis是否为我提供了任何这样的功能,在这里我可以执行这种LRU样式的hashmap条目驱逐而不接触其余的存储密钥?或者可以在redis提供的任何方面构建它吗?谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

  

redis是否为我提供了任何此类功能,我可以在这种情况下执行这种LRU样式的hashmap条目驱逐而不触及其余存储的密钥?

不,它没有。

  

或者可以在redis提供的任何方面构建它吗?

是的,可以。

有三种方法可以解决这个问题:

  1. 客户端逻辑:您可以在应用程序中管理Hash的字段驱逐逻辑。这将需要在Hash的级别中存储Hash值中的其他(元)数据(即在值中划分/构造元数据和真实数据)(您可以使用" special&# 34;字段名称,如" _eviction_heap _"),和/或其他数据结构(看起来像每个哈希的排序集会很有用)。

  2. 服务器端Lua:为了优化上述内容,您可以将逻辑打包到Lua中并使用EVAL命令执行它。

  3. Redis模块:这是高级内容,但如果你能做到这一点,你几乎可以做任何事情 - 包括实施新的"具有大小限制和LRU逐出功能" 数据结构的hashmap。