2024-06-26 03:39:57 发布
网友
我有个案子:
# a = r.keys("test_*") ; a {'test_1': '1', 'test_2': '2'} # b = r.mget(a) ; b ['1', ''2]
但是test_1可能会在mget时超时。那么我怎样才能把keys和mget作为原子步骤来实现呢
test_1
mget
keys
dict(zip(keys, r.mget(keys))
总是得到我想要的?你知道吗
为了使这两个命令以原子方式运行,可以使用lua脚本。你知道吗
atomic.lua local keys = redis.call('keys', '*') local result = {} for idx, key in ipairs(keys) do table.insert(result, key) insert key table.insert(result, redis.call('get', key)) insert value end return result
然而,使用KEYS命令几乎总是个坏主意,因为它可能会长时间阻塞Redis。你知道吗
KEYS
为了使这两个命令以原子方式运行,可以使用lua脚本。你知道吗
然而,使用
KEYS
命令几乎总是个坏主意,因为它可能会长时间阻塞Redis。你知道吗相关问题 更多 >
编程相关推荐