HSET如果存在密钥

问题描述:

只有存在密钥时,Redis才支持HSET。 http://redis.io/commands#hash 什么是实现客户端功能的最佳方式?HSET如果存在密钥

使用事务很容易在客户端实现它。

WATCH hkey 
isKeyExists = EXISTS hkey 
if isKeyExists 
    MULTI 
    HSET hkey field value 
    EXEC 
else 
    UNWATCH 

当WATCH后hkey被移除时,事务将失败。

您还可以使用Redis 2.6中引入的脚本。

+0

它没有做任何事情,如果我从redis-cli开始。 redis的127.0.0.1:6379> HGETALL HKEY 1) “V” 2)的 “r” redis的127.0.0.1:6379>观看HKEY isKeyExists = EXISTS HKEY如果isKeyExists MULTI HSET HKEY字段值EXEC别的取消监视 行 redis的127.0.0.1:6379> HGETALL hkey 1)“v” 2)“r” redis 127.0.0.1:6379> –

+0

抱歉没有解释清楚。我写的是在redis文档中使用的伪代码。查看更多:http://redis.io/topics/transactions – luin