.NET Stackexchange.Redis:是否根据值有条件删除?
我需要从redis缓存中删除一个条目, 但前提是它与某个值匹配 如果可能,我希望避免首先获取值、在服务器上检查然后删除的开销 我在delete命令中看不到选项,我检查了这些命令,以根据值限制删除。您可以在Redis中使用Lua来实现这一点(更不用说客户端和编程语言的选择了)-脚本只是为了避免客户端-服务器之间的来回。下面是一个示例脚本,用于检查字符串值是否相等,如果相等,则删除键:.NET Stackexchange.Redis:是否根据值有条件删除?,.net,redis,stackexchange.redis,.net,Redis,Stackexchange.redis,我需要从redis缓存中删除一个条目, 但前提是它与某个值匹配 如果可能,我希望避免首先获取值、在服务器上检查然后删除的开销 我在delete命令中看不到选项,我检查了这些命令,以根据值限制删除。您可以在Redis中使用Lua来实现这一点(更不用说客户端和编程语言的选择了)-脚本只是为了避免客户端-服务器之间的来回。下面是一个示例脚本,用于检查字符串值是否相等,如果相等,则删除键: local key = KEYS[1] local val = ARGV[1] local cur = redis
local key = KEYS[1]
local val = ARGV[1]
local cur = redis.call('GET', key)
if cur == val then
return redis.call('DEL', key)
else
return 0
end
要了解Redis中Lua的更多信息,请查看。谢谢Itamar!这是《时代》杂志的asaf(又名“茶佬”)/emaze:)嘿,asaf,在这里碰到你也很酷,非常欢迎你:)