让我说我在redis商店里有一些钥匙。我想在一个新的hashmap结构中保留一些键值对。我还希望限制此hashmap的大小,并在其大小(hashmap)超出限制并且不触及已存在的redis数据结构的其余部分时逐出最近最少使用的键值对。 redis是否为我提供了任何这样的功能,在这里我可以执行这种LRU样式的hashmap条目驱逐而不接触其余的存储密钥?或者可以在redis提供的任何方面构建它吗?谢谢你的帮助!
答案 0 :(得分:2)
redis是否为我提供了任何此类功能,我可以在这种情况下执行这种LRU样式的hashmap条目驱逐而不触及其余存储的密钥?
不,它没有。
或者可以在redis提供的任何方面构建它吗?
是的,可以。
有三种方法可以解决这个问题:
客户端逻辑:您可以在应用程序中管理Hash的字段驱逐逻辑。这将需要在Hash的级别中存储Hash值中的其他(元)数据(即在值中划分/构造元数据和真实数据)(您可以使用" special&# 34;字段名称,如" _eviction_heap _"),和/或其他数据结构(看起来像每个哈希的排序集会很有用)。
服务器端Lua:为了优化上述内容,您可以将逻辑打包到Lua中并使用EVAL
命令执行它。
Redis模块:这是高级内容,但如果你能做到这一点,你几乎可以做任何事情 - 包括实施新的"具有大小限制和LRU逐出功能" 数据结构的hashmap。