Redis教程05(hash类型命令介绍)

举报
波波烤鸭 发表于 2022/03/30 01:48:09 2022/03/30
【摘要】 前面几篇文章给大家介绍了String的常用命令,本篇主要介绍下Hash的常用命令 Redis教程04(String类型指BIT) Redis教程03(String介绍) Hash介绍 ...

前面几篇文章给大家介绍了String的常用命令,本篇主要介绍下Hash的常用命令

Redis教程04(String类型指BIT)
Redis教程03(String介绍)

Hash介绍

在实际开发过程中我们肯定会碰到很多需要存储对象的需求,此时hash就比较合适了。hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。

命令 说明
hset 设置key中字段的值
hget 获取key中字段的值
hmset 批量设置key中的字段
hmget 批量获取key中字段的值
hdel 删除key中指定的字典
hsetnx 设置key中的字段的值,如果字段存在就忽略
hvals 获取key中所有的字段的值
hkeys 获取key中的所有的字段
hgetall 获取key中的所有的字段及值
hexists 判断key中的字段是否存在
hincrby 将key中的字段增加特定的值
hincrbyfloat 和hincrby类似增加的float类型的数据
hlen 获取key中的字段的个数
hstrlen 获取key中某个字段的值得长度

HSet

HSet命令用来设置指定的key中的字段的值。

127.0.0.1:6379> hset user1 name zhangsan
(integer) 1

  
 
  • 1
  • 2

HGet

HGet命令获取指定的key中的hash值

127.0.0.1:6379> hget user1 name
"zhangsan"

  
 
  • 1
  • 2

HMSet

HMGet命令用来批量设置对应的key中的字段的值

127.0.0.1:6379> hmset user2 name zhangsan age 18 sex nan address sz
OK

  
 
  • 1
  • 2

HMGet

HMGet命令用来批量获取key中的字段所对应的值

127.0.0.1:6379> hmget user2 name age sex address
1) "zhangsan"
2) "18"
3) "nan"
4) "sz"

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

HDel

HDel命令可以移除指定的key中对应的字段,如果字段不存在则忽略

127.0.0.1:6379> hdel user2 address a1
(integer) 1 # 移除成功
127.0.0.1:6379> hmget user2 name age sex address
1) "zhangsan"
2) "18"
3) "nan"
4) (nil) # 不存在了

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

HSetNx

如果设置的字段不存在就设置值,如果存在就忽略

127.0.0.1:6379> hsetnx user2 name lisi
(integer) 0 # name字段存在,不起作用
127.0.0.1:6379> hsetnx user2 id 1001
(integer) 1 # id不存在,设置成功
127.0.0.1:6379> hmget user2 name age id
1) "zhangsan"
2) "18"
3) "1001"

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

HVals

HVals可以返回指定的key中所有字段的值

127.0.0.1:6379> hvals user2
1) "zhangsan"
2) "18"
3) "nan"
4) "1001"

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

HKeys

HKeys命令可以获取指定的key中的所有的字段信息

127.0.0.1:6379> hkeys user2
1) "name"
2) "age"
3) "sex"
4) "id"

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

HGetAll

HGetAll可以获取指定key中的所有的字段和对应的值,返回的形式是先返回字段然后是对应的值,所以返回的数据的长度是本身长度的两倍,如下:

127.0.0.1:6379> hgetall user2
1) "name"
2) "zhangsan"
3) "age"
4) "18"
5) "sex"
6) "nan"
7) "id"
8) "1001"

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

HExists

HExists用来判断指定的key中是否还有某字段,有返回1,没有返回0,如下:

127.0.0.1:6379> hexists user2 name
(integer) 1
127.0.0.1:6379> hexists user2 ids
(integer) 0

  
 
  • 1
  • 2
  • 3
  • 4

HIncrBy

HIncrBy用来增加指定的key中的某字段的值,如果字段不存在,则会创建字段与key关联,默认值为0然后增加相关数据。如果字段对应的值不是数字则报错

127.0.0.1:6379> hget user2 age
"18"
127.0.0.1:6379> hincrby user2 age 2
(integer) 20 # 增加2 并返回增加后的结果
127.0.0.1:6379> hincrby user2 age1 10
(integer) 10 # 关联字段 初始0 再加10
127.0.0.1:6379> hincrby user2 name 10
(error) ERR hash value is not an integer # 类型不匹配,报错

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

HIncrByFloat

该命令和HIncrBy类似,增加的是float类型的数据

HLen

HLen命令获取的是指定的key下的字段的个数

127.0.0.1:6379> hlen user2
(integer) 5

  
 
  • 1
  • 2

HStrLen

HStrLen获取指定key下的字段的值的长度

127.0.0.1:6379> hstrlen user2 name
(integer) 8
127.0.0.1:6379> hstrlen user2 address
(integer) 0 #不存在返回0
127.0.0.1:6379> hstrlen user2 sex
(integer) 3

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

~好了本文到此为止
更多资料欢迎参考官网手册

文章来源: dpb-bobokaoya-sm.blog.csdn.net,作者:波波烤鸭,版权归原作者所有,如需转载,请联系作者。

原文链接:dpb-bobokaoya-sm.blog.csdn.net/article/details/87077884

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。