元组作为clojure.core.cache中的键

时间:2019-08-19 07:37:20

标签: caching clojure

我目前正在尝试clojure.core.cache,但现在遇到的问题是我想根据键的元组存储值,而我不知道这样做的最佳/最惯用的方法是什么。

我正在考虑为每个第一个键值存储一个缓存,在那里我可以用第二个键值查找最终结果,但这对我来说似乎效率很低。

另一种方法是并置密钥,因为这也是唯一的,但这又似乎有点hackey。

也许对于缓存来说问题太大了,我应该使用redis或创建一个镜像数据库,但是我想在一段时间后使这些值过期,所以这似乎也不是最优的。

基本上,我有(organization-id, user-id)之类的键,并且我想为它们检索值并将结果存储在缓存中,并且要花一些时间。

1 个答案:

答案 0 :(得分:1)

为什么不只将Clojure向量用于元组? Clojure向量是不可变的值,仅当它们的长度相等时才相等,并且所有对应的元素都相等,并且可以用作映射中的键。我不记得core.cache是​​否在内部使用映射来表示缓存的内容,但是无论是否使用,它都应该能够将向量用作缓存键。