0


【Redis数据库 第4章】redis中的hash类型全部命令使用介绍,最详细版使用演示

文章目录

💨更多相关知识👇

💖Spring中的创建对象的三种方式、第三方资源配置管理详细描述及使用(XML版完结篇)

💖Spring中的bean的配置、作用范围、生命周期详细描述及使用(XML版上篇)

💖Spring中的依赖注入、setter与构造器注入、自动装配与集合注入详细描述及使用(XML版中篇)


🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈

🍂个人博客首页: KJ.JK

💖系列专栏:JavaEE进阶教程系列


一、redis中的key结构

Redis的key允许有多个单词形成层级结构,多个单词之间用 ’ : '隔开,

格式如下:

​ 项目名 : 业务名 : 类型 : id

这个格式并非固定,也可以根据自己的需求来删除或添加词条。
例如我们的项目名称叫 abc,有user和product两种不同类型的数据,我们可以这样定义key:
user相关的key:abc:user:1
product相关的key:abc:product:1
请添加图片描述


请添加图片描述


二、redis中的hash类型


1、hash类型

Hash类型,也叫散列,其value是一个无序字典,类似于Java中的HashMap结构。
String结构是将对象序列化为JSON字符串后存储,当需要修改对象某个字段时很不方便:
KEYVALUEabc:user:1{name:“Jack”,age:21}abc:user:2{name:“Rose”,age:18}
当对象的某个属性需要频繁修改时,不适合用 string+json,因为它不够灵活,每次修改都需要重新将整个对象序列化并赋值,如果使用 hash 类型,则可以针对某个属性单独修改,没有序列化,也不需要修改整个对象。比如,商品的价格、销量、关注数、评价数等可能经常发生变化的属性,就适合存储在hash类型里。

两种存储方式的对比如下表所示:
String + json****Hash效率很高高容量低低灵活性低高序列化简单复杂
Hash结构可以将对象中的每个字段独立存储,可以针对单个字段做CRUD:

请添加图片描述


2、hash类型的全部命令

可以使用help @hash 获取全部的命令


🔸hset:添加或者修改hash类型key的field的值

  • HSET key field value:添加或者修改hash类型key的field的值

例子: hset abc:user:3 age 25

​ key field field的值

请添加图片描述


🔸hget:获取一个hash类型key的field的值

  • HGET key field:获取一个hash类型key的field的值

例子: hget abc:user:3 name

​ key field

请添加图片描述


🔸hmset:批量添加多个hash类型key的field的值

  • HMSET key field value [field value …]:批量添加多个hash类型key的field的值

例子: hmset abc:user:4 name lihua age 25 sex man

请添加图片描述


🔸hmget:批量获取多个hash类型key的field的值

  • HMGET key field [field …]:批量获取多个hash类型key的field的值

例子: hmget abc:user:4 name age sex

请添加图片描述


🔸hgetall:获取一个hash类型的key中的所有的field和value

  • HGETALL key:获取一个hash类型的key中的所有的field和value

例子: hgetall abc:user:4

请添加图片描述


🔸hkeys:获取一个hash类型的key中的所有的field

  • HKEYS key:获取一个hash类型的key中的所有的field

例子:hkeys abc:user:4

请添加图片描述


🔸hvals:获取一个hash类型的key中的所有的value

  • HVALS key:获取一个hash类型的key中的所有的value

例子: hvals abc:user:4

请添加图片描述


🔸hincrby:让一个hash类型key的字段值自增并指定步长(如果给负数就自减)

  • HINCRBY key field increment:让一个hash类型key的字段值自增并指定步长(如果给负数就自减)

例子: hincrby abc:user:4 age 2

请添加图片描述


🔸hincrbyfloat :让一个hash类型的key的字段值自增并指定步长,是用来设置浮点数的

  • HINCRBYFLOAT key field increment:让一个hash类型的key的字段值自增并指定步长,是用来设置浮点数的(负数就负增长)

例子: hincrbyfloat abc:user:4 age 1.1

请添加图片描述


🔸hsetnx:添加一个hash类型的key的field值,前提是这个field不存在,否则不执行(没有字段就新增,有字段就不变)

  • HSETNX key field value:添加一个hash类型的key的field值,前提是这个field不存在,否则不执行(没有字段就新增,有字段就不变)

例子: hsetnx abc:user:4 sex woman

请添加图片描述


请添加图片描述


🔸hdel: 删除存储在哈希表中的key的指定field字段

  • HDEL key field [field …]: 删除存储在哈希表中的key的指定field字段

例子:hdel abc:user:4 name

请添加图片描述


🔸hlen:获取哈希中的field字段数

  • HLEN key:获取哈希中的field字段数

例子: hlen abc:user:4

请添加图片描述


🔸hexists:查看hash表中,给定key的域field是否存在。如果存在,则返回1,如果field不存在或者是key也不存在,返回0

  • HEXISTS key field:查看hash表中,给定key的域field是否存在。如果存在,则返回1,如果field不存在或者是key也不存在,返回0

例子: hexists abc:user:4 age

请添加图片描述


🔸hrandfield :随机返回一个key的field字段

  • HRANDFIELD key [count [WITHVALUES]]:随机返回一个key的field字段
  • count:指定随机返回多少个字段
  • withvalues:选择返回字段的时候一起返回它们的值(加了count才可用)

​ 例子:hrandfield abc:user:4

​ hrandfield abc:user:4 2

​ hrandfield abc:user:4 2 withvalues

请添加图片描述


🔸hscan:迭代hash的所有field

  • HSCAN key cursor [MATCH pattern] [COUNT count]:迭代hash的所有field,迭代之后会返回游标和field和value,游标用于下次迭代,第一次迭代写0,迭代完的游标也是0
  • cursor:遍历时的游标,只能是整数
  • match pattern:可选,pattern处是匹配规则
  • Count count:可选,count处是返回多少个,某个字段的字节数大于64字节,或者字段数大于512,count选项才有用

例子:hscan abc:user:4 0 match *e

请添加图片描述


🔸hstrlen:返回key中field的值的长度

  • HSTRLEN key field:返回key中field的值的长度

例子: hstrlen abc:user:4 age

请添加图片描述


作者:KJ.JK

文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习


本文转载自: https://blog.csdn.net/m0_47384542/article/details/128749665
版权归原作者 KJ.JK 所有, 如有侵权,请联系我们删除。

“【Redis数据库 第4章】redis中的hash类型全部命令使用介绍,最详细版使用演示”的评论:

还没有评论