如何检查key是否存在于Redis中?

我在Laravel模型中有一个函数, 我需要检查我的key($key变量)是否存在于Redis中, 换句话说, 我想设置一个条件, 不允许Redis中出现重复的结果. 这是我的函数. 感谢任何帮助.

函数

public     static function cacheFields($fields)
{
    foreach ($fields     as $fieldname => $values) {

        $key =     static::$redisFieldKey.$fieldname; // here is that variable

        Redis::pipeline(function ($pipe) use ($key, $values) {
            foreach ($values     as $value => $label) {
                $pipe->hset($key, $value, $label);
            }
        });
    }
}
redis
php
2023-05-10 13:31:51
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
阳祭十八

当你执行 ​​hset​​​ 对于非现有的钥匙,它将 ​​set​​​ 您的哈希值与字段及其对应的值。当你针对现有的哈希值(和字段键)执行它时,它将会 ​​update​​ 现有哈希字段的哈希值。

127.0.0.1:6379> hset myhash myhashfield myvalue
(integer) 1
127.0.0.1:6379> hgetall myhash
1) "myhashfield"
2) "myvalue"
127.0.0.1:6379> hset myhash myhashfield anothervalue
(integer) 0
127.0.0.1:6379> hgetall myhash
1) "myhashfield"
2) "anothervalue"
127.0.0.1:6379>

如果你想检查键是否存在,你可以使用 ​​exists​​ O(1)

127.0.0.1:6379> exists myhash
(integer) 1
127.0.0.1:6379> exists nonexisting
(integer) 0

如果你想检查哈希字段是否存在,你可以使用 ​​hexists​​ O(1)

127.0.0.1:6379> hexists myhash myhashfield
(integer) 1
127.0.0.1:6379> hexists myhash nonfield
(integer) 0
127.0.0.1:6379> hexists notmyhash myfield
(integer) 0

编辑:

The ​​文件​​ 指出,对于 ​​hset​​;

将存储在钥匙处的哈希字段设置为值。如果key不存在,则创建一个新的key,其中包含一个哈希值。如果字段已经存在于哈希中,则会被覆盖。

分享
微博
QQ
微信
回复
2023-05-10 15:18:56
相关问题
如何找出Redis的大Key与热Key
1074浏览 • 1回复 待解决
如何判断JS对象是否存在某个值
262浏览 • 1回复 待解决
Redis Key的注意点是什么?
1404浏览 • 1回复 待解决
PostgreSQL insert 前判断是否存在
1982浏览 • 2回复 待解决
redis模糊查询key有懂的吗?
542浏览 • 1回复 待解决
Redis key 的过期数据存储在哪里?
1044浏览 • 1回复 待解决
如何从多个 RDB 文件恢复 Redis?
993浏览 • 1回复 待解决
GitLab如何使用需要密码的redis?
386浏览 • 1回复 待解决