当前位置: 首页 > 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.dtcms.com/a/313398.html

相关文章:

  • 编写xsync集群分发脚本(保姆级别)
  • Redis 数据同步机制
  • 【Linux】Makefile Cmake—基操
  • [特殊字符]字节Get!免费进楼攻略速存[特殊字符]
  • LWIP从FreeRTOS到uC/OS-III的适配性改动
  • linux 扩展未分配的磁盘空间到home下
  • SQL157 更新记录(一)
  • 代码随想录算法训练营第五十八天|动态规划part8
  • 成功解决ImportError: DLL load failed while importing _multiarray_umath: 找不到指定的模块。
  • 深度学习中的模型知识蒸馏
  • 深度学习中卷积与互相关
  • 记录使用ruoyi-flowable开发部署中出现的问题以及解决方法
  • FastAPI-Vue3-Admin 一款Python 全栈融合的高可用中后台快速开发平台方案
  • golang 函数选项模式
  • 数据结构(概念及链表)
  • 【数据结构】队列的顺序存储与链式存储(C语言版)
  • 基于深度学习的医学图像分析:使用变分自编码器(VAE)实现医学图像生成
  • (FD Conv)Frequency Dynamic Convolution for Dense Image Prediction论文精读(逐段解析)
  • 07.config 命令实现动态修改配置和慢查询
  • [硬件电路-138]:模拟电路 - 什么是正电源?什么是负电源?集成运放为什么有VCC+和VCC-
  • Unix 发展史概览
  • 探索 Zephyr 项目:高效、可扩展的实时操作系统
  • 源代码本地安装funasr
  • C语言数据结构(6)贪吃蛇项目1.贪吃蛇项目介绍
  • 有限元方法中的数值技术:三角矩阵求解
  • Vulnhub Corrosion2靶机复现
  • 机器人抓取流程介绍与实现——机器人抓取系统基础系列(七)
  • 腾讯云CentOS7镜像配置指南
  • Pytorch实现一个简单的贝叶斯卷积神经网络模型
  • Java 中也存在类似的“直接引用”“浅拷贝”和“深拷贝”