当前位置: 首页 > news >正文

Redis——常用指令汇总指南(三)(哈希类型)

目录

1.hset & hget

①hset

②hsetnx

③hget

2.hstrlen

3.hexists & hlen

①hexists

②hlen

4.hdel

5.hkeys

6.hvals

7.hgetall

hkeys & hvals & hgetall的区别

8.hmget & hmset

9.hincrby & hincrbyfloat

①hincrby

②hincrbyfloat


1.hset & hget

①hset

        hset指令用于设置哈希类型,支持一次设置多个field-val哈希,其返回值是成功设置的field-val映射的个数。时间复杂度为o(m),m是一次性设置field-val对的个数。

        当field-val已存在时,hset的作用是修改val值。

hset  key  field1  val1  field2  val2  ...

       在Redis哈希类型中,key和其他类型中key一样,而value是(field + val)。同时field和val又构成一对哈希映射。图示如下:

        其使用示例如下:
 

②hsetnx

        该指令可以类比指令setnx,只有当key中该field是第一次插入时,指令会成功执行并返回1,否则执行失败并返回0。值得一提的是,在Redis中并没有设置hsetex指令。

hsetnx  key  field  val

        使用示例如下: 

③hget

        hget是通过key+field来获取对应的val。需要强调,hget是获取val,而不是value(value == field + val)。而获取field是通过hkeys等指令(见后文)。时间复杂度为o(1)。

hget  key  field

        使用示例如下:

2.hstrlen

        hstrlen指令用于获取val的长度,长度以字节为单位。当val为汉字时,以3Byte为单位,详见

《Redis指令汇总(二)》

hstrlen  key  field

        使用示例如下: 

3.hexists & hlen

①hexists

        该指令用于查看field-val在key中是否存在。若查询存在会返回1;否则,不管是field不存在还是key不存在,其返回的都是0。

hexists  key  field1  field2 

        使用示例如下:

②hlen

        该指令用于获取field的个数。其时间复杂度为o(1),这里需要说明一下,Redis实现hash类型时,定义了一个变量专门用于记录当前该key中有多少个field。因此时间复杂度不是o(n),而是o(1)。

hlen  key

        使用示例如下: 

4.hdel

        该指令用于删除field-val,支持批量删除操作,返回成功删除field-val对的个数。

hdel  key  field1  field2  ... 

        使用示例如下:
        需要注意,如果想直接删除key,那么使用del即可。 

5.hkeys

        hkeys指令用于获得特定key中所有的field,注意,该指令获得的是field。其时间复杂度为o(n),n为key中field的个数。

hkeys  key 

        使用示例如下:

6.hvals

        hvals用于获得特定key中所有的val,其时间复杂度为o(n),n为key中val的个数。

hvals  key

         使用示例如下:

7.hgetall

        hgetall指令用于获得特定key中所有的field-val对。其时间复杂度为o(n),n为field-val对的个数。

hgetall  key

        使用示例如下:

hkeys & hvals & hgetall的区别

指令返回对象
hkeysfield
hvalsval
hgetallfield-val

8.hmget & hmset

        hmget用于一次获取多个val。相比于hvals仅支持全部查找,它支持查找特定field的val。在返回的时候,会按照输入field的顺序来显示val。

        需要说明的是Redis中实现了hmset,但是由于hset已经支持批量操作,所以hmset并不常用,在此不再演示说明。

hmget  key  field1  field2  ...

        使用示例如下:

9.hincrby & hincrbyfloat

①hincrby

        hincrby指令用于修改val的数值,是hash类型版的incrby指令(详见《Redis指令汇总(二)》)。其中n可正可负,执行时是val + n的操作。返回值是执行之后的val值。

hincrby  key  field  n

        使用示例如下: 

          当key或者field不存在时,hincrby指令会创建key或field,并将val赋值为指定的n。示例如下:

②hincrbyfloat

        该指令是hincrby的浮点数版本,与hincrby的区别是n支持浮点数类型。

hincrbyfloat  key  field  n

        使用示例如下:

        


如有错误,敬请斧正

http://www.lryc.cn/news/608755.html

相关文章:

  • Odoo OWL前端框架全面学习指南 (后端开发者视角)
  • 三角洲行动ACE反作弊VT-d报错?CPU虚拟化如何开启!
  • GitOps:云原生时代的革命性基础设施管理范式
  • Ubuntu20.04 Carla安装与和Ros联合仿真
  • Ubuntu22.4部署大模型前置安装
  • AI + 云原生:正在引爆下一代应用的技术革命
  • LabVIEW小波变换检测信号断点
  • HCIP笔记(第四章)
  • 悬挂的绳子,它的函数方程是什么样子的?
  • Python Dash 全面讲解
  • 大屏项目展示
  • 基于Springboot+UniApp+Ai实现模拟面试小工具八:管理端基础功能实现
  • RAG与智能体技术全景解析:架构革新、场景落地与未来趋势
  • linux2.6 和 unix-v6 源码实验
  • uni-app学习笔记01-项目初始化及相关文件
  • Java小红书源码1:1还原uniapp_仿小红书源码
  • UniApp 实现顶部固定导航栏 Tab 及滚动变色效果
  • 7.13.B+树
  • io_setup系统调用及示例
  • [AI8051U入门第十五步]W5500实现DHCP自动获取IP
  • UE5的渲染Debug技巧
  • [每周一更]-(第154期):Docker 底层深度剖析:掌控 CPU 与内存资源的艺术
  • Leetcode 12 java
  • GitHub 趋势日报 (2025年08月02日)
  • ThinkPad P16 Gen2,P16 Gen2 LTE(21FA,21FB)原装Win10Pro,Win11专业版系统镜像,恢复出厂开箱状态
  • All the Mods 9 - To the Sky - atm9sky 局域网联机报错可能解决方法
  • Timer串口常用库函数(STC8系列)
  • 代码随想录算法训练营第三十九天
  • 【内容规范】关于标题中【】标记的使用说明
  • 【机器学习③】 | CNN篇