当前位置: 首页 > 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.xdnf.cn/news/1238833.html

相关文章:

  • Timer实现定时调度的原理是什么?
  • ORA-12514:TNS: 监听程序当前无法识别连接描述符中请求的服务
  • 【2025/08/03】GitHub 今日热门项目
  • 案例介绍|JSON数据格式的转换|pyecharts模块简介
  • 计算机网络(TCP篇)
  • io_setup系统调用及示例
  • C++编译过程与GDB调试段错误和死锁问题
  • 【前端:Html】--1.2.基础语法
  • 源代码本地安装funasr
  • 【Linux网络编程基础--socket地址API】
  • 01数据结构-时间复杂度和空间复杂度
  • FreeRTOS源码分析三:列表数据结构
  • 线程锁-互斥、自旋、读写、原子操作、线程池
  • 江协科技STM32 14-1 WDG看门狗
  • Python篇---环境变量软件安装
  • 【视频内容创作】PR的关键帧动画
  • C++23 Concepts:用类型约束重构泛型编程的终极方案
  • k8s+isulad 国产化技术栈云原生技术栈搭建2-crictl
  • io_cancel系统调用及示例
  • 数据结构:单向链表的函数创建
  • 二叉树的锯齿形层次遍历
  • 思途JSP学习 0802(项目完整流程)
  • day 44 文件的规范书写与拆分
  • 《 ThreadLocal 工作机制深度解析:高并发场景的利与弊》
  • Spring+K8s+AI实战:3全栈开发指南
  • Redis实战(7)-- 高级特性 Redis Stream数据结构与基础命令
  • HCIE-Datacom题库_07_设备【道题】
  • kafka与其他消息队列(如 RabbitMQ, ActiveMQ)相比,有什么优缺点?
  • Qt-vs加载exe图标
  • 日常--详细介绍qt Designer常用快捷键(详细图文)