当前位置: 首页> 教育> 幼教 > 洛阳建站推广哪家靠谱_建筑培训网安全员考试成绩查询_青岛seo服务公司_企业网站seo方案

洛阳建站推广哪家靠谱_建筑培训网安全员考试成绩查询_青岛seo服务公司_企业网站seo方案

时间:2025/8/25 20:30:08来源:https://blog.csdn.net/li209779/article/details/143462453 浏览次数:0次
洛阳建站推广哪家靠谱_建筑培训网安全员考试成绩查询_青岛seo服务公司_企业网站seo方案

在这里插入图片描述

个人主页 : 个人主页
个人专栏 : 《数据结构》 《C语言》《C++》《Linux》《网络》 《redis学习笔记》

文章目录

  • 前言
  • Hash哈希命令
    • HSET 和 HGET
    • HEXISTS
    • HDEL
    • HKEYS
    • HVALS
    • HGETALL
    • HMGET
    • HLEN
    • HSETNX
    • HINCRBY
    • HINCRBYFLOAT
  • 内部编码
  • 总结


前言

在redis中,哈希类型是指值本身又是一个键值对结构,如key = “key”, value = {{field1, value1}, …, {fieldn, valuen}},redis键值对和哈希类型二者的关系如下所示:

在这里插入图片描述
哈希类型中的映射关系通常被称为 field-value,用于区分redis整体的键值对key-value


Hash哈希命令

HSET 和 HGET

设置 hash 中指定的字段(field)的值(value)

HSET key field value [field value …]

返回值:添加的字段的个数
时间复杂度:O(N),N为插入field-value的个数


获取 hash 中指定字段的值

HGET key field

返回值:字段对应的值或nil
时间复杂度:O(1)

在这里插入图片描述


HEXISTS

判断hash是否有指定的字段

HEXISTS key field

返回值:1表示存在,0表示不存在
时间复杂度:O(1)

在这里插入图片描述


HDEL

删除 hash 中指定的字段

HDEL key field [ field … ]

返回值:本次操作删除的字段个数
时间复杂度:O(N),N为删除元素的个数

在这里插入图片描述


HKEYS

获取 hash 中所有字段

HKEYS key

返回值:字段列表
时间复杂度:O(N),N为 field 的个数

在这里插入图片描述


HVALS

获取 hash 中的所有的值

HVALS key

返回值:所有的值
时间复杂度:O(N),N为 field 的个数

在这里插入图片描述
和hkeys相对,能够获取 hash 中的所有value。


HGETALL

获取 hash 中所有字段以及对应的值

HGETALL key

返回值:字段和对应的值
时间复杂度:O(N),N为field的个数

在这里插入图片描述


注意:
上述的 hkeys, hvals, hgetall 都存在一定风险的,hash的元素个数太多,执行时间太长,从而阻塞redis。如果一定要获取全部的 field ,可以尝试使用 hscan命令,该命令是采用渐进式遍历哈希类型的;也就是执行一次命令,遍历一部分 field,再执行一次命令,遍历一部分 field … 连续执行多次,完成整个的遍历过程;这样单次执行命令的时间就是可控的,也是化整为零的思想。


HMGET

一次获取 hash 中多个字段的值

HMGET key field [field …]

返回值:字段对应的值 或 nil
时间复杂度:O(N),N为field的个数

在这里插入图片描述


HLEN

获取 hash 中的所有字段的个数

HLEN key

返回值:字段个数
时间复杂度:O(1),不需要遍历的,使用变量存储个数

在这里插入图片描述


HSETNX

在字段不存在的情况下,设置 hash 中的字段和值

HSETNX key field value

返回值:1表示设置成功,0表示设置失败
时间复杂度:O(1)

在这里插入图片描述

HINCRBY

将 hash 中字段对应的数值添加指定的值

HINCRBY key field increment

返回值:该字段变化之后的值
时间复杂度:O(1)

在这里插入图片描述


HINCRBYFLOAT

将 hash 中字段对应的数值添加指定的值,可以是浮点数

HINCRBYFLOAT key field increment

返回值:该字段变化之后的值
时间复杂度:O(1)

在这里插入图片描述


hash中的value,会被当做数字处理,但其本质还是 字符串。


内部编码

哈希的内部编码有两种:

  • ziplist(压缩列表):当哈希类型元素个数小于 hash-max-ziplist-entries配置,同时所有值都小于 hash-max-ziplist-value 配置时,redis会使用 ziplist 作为哈希的内部实现
  • hashtable(哈希表):当哈希类型无法满足ziplist的条件时,redis会使用hashtable作为哈希的内部实现

hash-max-ziplist-entries 和 hash-max-ziplist-value 都是可以通过redis.conf文件来配置的
使用ziplist是为了节省内存空间并提高存储效率。

  1. 紧凑的存储格式:ziplist将多个数据项存储在一个紧凑的结构中,相邻的数据项之间紧密相连,不使用额外的指针来存储数据项之间的关系,从而节省内存空间
  2. 动态的内存分配:ziplist可以动态的拓展或缩小以容纳不同数量的元素,这使得ziplist非常适合存储长度不固定的数据集
  3. 高效的编码方式:ziplist中的每个元素都由previous_entry_length(前一个元素的长度),encoding(元素的类型和长度),content(元素的值)三个属性组成。 其中,encoding字段可以根据实际存储的数据类型和数据长度进行高效的编码,进一步节省了内存空间。

在这里插入图片描述


总结

以上就是我是redis学习笔记

在这里插入图片描述

关键字:洛阳建站推广哪家靠谱_建筑培训网安全员考试成绩查询_青岛seo服务公司_企业网站seo方案

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: