首页 > 解决方案 > 使用redis或其他数据库时是否应该在get之前调用方法hasKey

问题描述

当我想从 Redis 获取数据时,我对是否在 redis.get 之前调用方法 redis.hasKey 感到困惑。

有人这样写:

if (redis.hasKey('xxx')) {
    return redis.get('xxx');
}
return ...

和其他人这样写:

Object value = redis.get('xxx')
if (value != null) {
    return value
}
return ...

我觉得第二个很好,因为它只运行一次Redis,第一个有两个。你选择了哪个,为什么?谢谢。

对不起我的英语不好。

标签: javaredis

解决方案


对 hasKey 的调用是阻塞的,get 也是阻塞的。仅调用 get 并根据对象检查结果是 null 还是更有意义。


推荐阅读