java - 使用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,第一个有两个。你选择了哪个,为什么?谢谢。
对不起我的英语不好。
解决方案
对 hasKey 的调用是阻塞的,get 也是阻塞的。仅调用 get 并根据对象检查结果是 null 还是空更有意义。
推荐阅读
- c++ - 模板 c++ 编译器差异 VC++ 不同输出
- css - 当填充/边距妨碍小屏幕上的内容时,你会怎么做?
- python - 虚拟环境中的 ModuleNotFoundError
- image-processing - 转换没有标题的原始图像
- python - python程序未完成执行
- python - 如何在 Keras 的预训练 CNN 模型中更改层的输出?
- reactjs - React Firebase 身份验证返回 null
- php - 在 foreach 中运行时返回无意义的数组数组
- javascript - 即使使用内联 JavaScript 函数 - Google ReCAPTCHA 也找不到用户提供的函数:函数(响应) -
- python - 字典中的列表