Redis专家, 我想通过某种类型资源搜索空闲数据,然后将其标记为非空闲,全部在一个命令(原子)中。
我正在使用redis来保持不同类型的活动资源的标签。我应该如何处理我的这个问题,我需要通过查询一些字段值来获取哈希数据,我已经创建了自己的集合并使用sinter
然后更新它以将其标记为正在使用中。这是如何使用set http://robots.thoughtbot.com/redis-set-intersection-using-sets-to-filter-data
假设我想找到一个类型为X且属性为A的空闲资源的id,我使用type
set和attribute
上的相交来查询它。使用命令{ {1}}。假设它返回资源#400的id,我想使用这个数字来hgetall并更新它,使得active变为true,(SINTER S:type:X S:attribute:A S:active:false
)。
我需要它是原子的。 现在我还在尝试在multi / exec中执行此操作。如果有更简单的方法,请建议。
答案 0 :(得分:1)
使用LUA脚本。它是Redis使用的脚本语言。您可以将脚本加载到Redis中,它将以原子方式执行脚本。查找redis的EVAL,SCRIPT LOAD和EVALSHA命令,并在google上搜索“lua script redis”。