list - 使用列表值构成单个redis mget

标签 list clojure redis

我有一个 clojure 列表

("mykey:1" "mykey:2" "mykey:3")

我想使用redis mget 获取所有键的值

(mget mykey:1 mykey:2 mykey:3)

我正在使用精彩的 Carmine库..我对它没有任何问题,但是当我尝试在函数中使用列表时

(defn get-keys
[k]
(mget k))

k 实际上也包括方括号,因为它是一个列表。正在做:

(mget (map #(%) k)) 

我也无处可去。

我现在如何将它们拆分成单独的键以便将其传递给 mget?这可能吗?

谢谢

最佳答案

当你有一个集合,其中包含你想用作函数参数的值时,你应该使用 apply .

(def args '("mykey:1" "mykey:2" "mykey:3"))

(apply mget args)
; is equivalent to the call    
(mget "mykey:1" "mykey:2" "mykey:3")

关于list - 使用列表值构成单个redis mget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23013720/

相关文章:

c# - 单元测试 : Assert range of a list with greater or lesser than

Redis Hash/Set 存储多种类型

java - 如何在 Apache Beam 中使用流输入 PCollection 请求 Redis 服务器?

clojure - 如何从 leiningen 项目中排除 jars?

node.js - Redis报错: Error: Redis connection to 127. 0.0.1 :6379 failed - connect ECONNREFUSED 127. 0.0.1:6379

python - 删除列表中 2 个重复的交换子列表

python - 如何替换尺寸不均匀的文件中的某些列

r - 使用整洁的方法将命名列表列表转换为数据帧

clojure - 将 webapp 前端添加到现有 clojure 应用程序

macos - Clojure 跷跷板应用程序 : How to change menubar title from "main"