.NET Stackexchange.Redis:条件删除取决于值?

时间:2017-05-09 07:37:36

标签: .net redis stackexchange.redis

我需要从redis缓存中删除一个条目, 但只有它匹配某个值。

如果可能,我想避免首先获取值,检查服务器,然后删除的开销。

我在删除命令中看不到任何选项,我根据值检查限制删除。

1 个答案:

答案 0 :(得分:1)

你可以使用Lua在Redis中做到这一点(更少考虑客户端和编程语言的选择) - 脚本只是避免客户端 - 服务器来回的东西。这是一个示例脚本,它检查String值是否相等,如果是,则删除密钥:

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的更多信息,请查看EVAL's documentation