Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.NET Stackexchange.Redis:是否根据值有条件删除?_.net_Redis_Stackexchange.redis - Fatal编程技术网

.NET Stackexchange.Redis:是否根据值有条件删除?

.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

我需要从redis缓存中删除一个条目, 但前提是它与某个值匹配

如果可能,我希望避免首先获取值、在服务器上检查然后删除的开销

我在delete命令中看不到选项,我检查了这些命令,以根据值限制删除。

您可以在Redis中使用Lua来实现这一点(更不用说客户端和编程语言的选择了)-脚本只是为了避免客户端-服务器之间的来回。下面是一个示例脚本,用于检查字符串值是否相等,如果相等,则删除键:

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,在这里碰到你也很酷,非常欢迎你:)