• Redis对哈希数据的增删改查操作命令合集
  • 发布于 2个月前
  • 250 热度
    0 评论
因为 Redis 存储的数据类型是一个 key-value 的结构,而哈希本身的数据类型也是一个 key-value 的类型,所以哈希数据相当于是一个嵌套的类型,这个地方需要了解清楚它的概念。在下面的例子中,我们将 Redis 中的 key 称为 key,而哈希中的 key-value 中对应的 key 称为 field 以示区分。

哈希命令的前面都带一个 h,这是哈希命令的一个特点。

接下来,我们以一个例子来介绍哈希命令,我们想要存入一个这样的数据,key 为 student,它有 name,number,rank 三个 field 属性,大致如下:
{
    "student":
        {
            // 堆代码 duidaima.com
            "name": "Hunter",
            "number": "00001",
            "rank": 1
        }
}
1.哈希数据的增删改查
这里我们要设置 student 的几个属性值,创建和更新都用 heset:
hset student name "Hunter"
hset student number "00001"
hset student rank 1
使用 hget 查询数据:
hget student name
使用 hdel 删除数据:
hdel student name
如果是直接删除 student 这个 key 呢,直接使用 del:
del student
2. hexists 和 hlen
hexists 是用于查看 key 下某个 field 属性是否存在,假设前面的 student 数据没有删除,我们这样使用:
hexists student name
# 1
返回的结果是 1 则表示 name 这个 field 存在,不存在的话会返回 0

hlen 用于查看 key 下存在多少个 field 属性:
hlen student
3. hmget 和 hmset
批量查看和设置哈希数据下的属性。比如我们想一次性查看 student 下的 name 和 number 属性的值,可以使用 hmget:
hmget student name number
#1) "Hunter"
#2) "00001"
也可以使用 hmset 来批量设置:
hmset student name "Jack" rank "2"
4. 查看某个 key 下所有数据
如果我们想查看某个 key 下所有的 field 属性,可以使用 hkeys:
hkeys student
#1) "name"
#2) "number"
#3) "rank
返回的是所有 field 属性

如果我们想查看某个 key 下所有的 field 属性下的值,可以使用 hvals
hvals student
#1) "Jack"
#2) "00001"
#3) "2"
如果我们想查看某个 key 下所有的 field 属性和对应的值,可以使用 hgetall:
hgetall student
#1) "name"
#2) "Jack"
#3) "number"
#4) "00001"
#5) "rank"
#6) "2"

会将 field-name 依次返回。
用户评论