gpt4 book ai didi

clojure - 使用 taoensso.carmine 检查是否存在多个 key

转载 作者:可可西里 更新时间:2023-11-01 11:46:12 24 4
gpt4 key购买 nike

我正在使用 taoensso.carmine redis 客户端并希望实现以下目标:给定序列 s,获取其在 redis 中不存在的所有元素。 (我的意思是 redis 的 EXISTS 命令返回 false)

起初我想做以下事情:

(wcar conn
(remove #(car/exists %) s))

但它返回汽车/存在响应的序列而不是按它们过滤我的序列

(remove #(wcar conn (car exists %)) s)

完成工作但需要花费大量时间,因为每次都没有管道和使用新连接。

所以我在下面进行了一些复杂的 map 操作,但我相信应该有更简单的方法来实现它。怎么办?

(let [s (range 1 100)
existance (wcar conn
(doall
(for [i s]
(car/exists i))))
existance-map (zipmap s existance)]
(mapv first (remove (fn [[k v]] (= v 1)) existance-map)))

最佳答案

您的remove 函数是惰性的,因此它不会执行任何操作。您也不能在 wcar 宏中进行数据操作,所以我会这样:

(let [keys ["exists" "not-existing"]]
(zipmap keys
(mapv pos?
(car/wcar redis-db
(mapv (fn [key]
(car/exists key))
keys)))))

关于clojure - 使用 taoensso.carmine 检查是否存在多个 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39750381/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com