检查值存在并返回,如果它是Jedis Redis

时间:2014-07-24 05:10:58

标签: java redis jedis

我正在使用Jedis Redis客户端,并希望能够确定密钥是否存在,如果存在,那么获取值。我目前正在使用if语句检查密钥是否存在,如果不存在则返回null。我假设这不是最好的做事方式,因为你需要不止一次访问数据库。有没有办法在获取值的同一步骤中检查密钥是否存在?

一些示例代码:

try {
    if (!jedis.exists(name)) {
        return null;
    }

    return jedis.hgetAll(name);
} catch (JedisConnectionException exception) {
    // Do stuff
} finally {
    // Clean up
}

1 个答案:

答案 0 :(得分:4)

使用Redis时,如果存在密钥,则关联的值不为空。这适用于set,zset,hash,list,但不适用于string。

示例:

> hmset x id 0
OK
> keys *
1) "x"
> hdel x id
(integer) 1
> keys *
(empty list or set)

在您的情况下,您只需执行hgetAll并检查返回是否为空。