Redis的value类型及编码方式介绍——hash

Redis中的hash,并不是key------value的那一套机制,而是这个key对应的value本身是hash结构

value(field--value)

针对于hash的命令

1.hset、hget

hset key field value field1 value1..

在key对应的hash中在键为field的值设置为value(可以一次性设置多个)返回设置成功的对数

hget key filed

获取key对应的hash中键为field的值

2.hexists

hexists key field

查找hash中是否有某field 成功return 1 失败0

3.hdel

hdel key field field1....

删除hash key的field,返回删除的字段个数

4.hkeys、hvals

hkeys key

获取hash key的所有field

hvals key

获取hash key中的所有value

5.hgetall、hmget

hgetall=hkeys+hvals

hgetall key

以field1 value1 field2 value2 返回

hmget 一次性查询多个field的value

hmget key f1 f2 f3

6.hlen

获取key的键值对个数

7.hsetnx

和setnx同理,设置value,无设置,有不动

hsetnx key field value

8.hincrby

加减value中的整数 hincrbyfloat加减小数

hash编码方式

压缩列表和hashtable

如果hash元素比较少就会用ziplist表示,为了节省空间,如果元素多了,读写效率会显著降低,此时会用hashtable表示

value如果都很短可以用ziplist,如果某个value太长了就会用hashtable

hash的应用

作为缓存

虽然我们说过string也可以作为缓存,但存储一些结构性的数据,比如用户信息,hash更合适(string的Json也可以)

但是,hash类型是稀疏的,关系型数据库是完全结构化的

相关推荐
波力海苔夹心脆67519 分钟前
VisionPro 与 VisionMaster 对比(上):软件定位、开发环境与核心视觉工具对照
图像处理·算法·计算机视觉·c#·视觉检测·个人开发·vp9
动词ing23 分钟前
【题目练习】盛最多水的容器
算法·目标检测
海绵宝宝转agent24 分钟前
2026-10-14算法+面经总结
java·笔记·算法·缓存
虚无的纽扣24 分钟前
【力扣刷题】第四天:三数之和、四数之和
算法·leetcode·职场和发展
计算机就业还在扩大31 分钟前
Redis中的setnx是原子性的?
数据库·redis·缓存
ZiLing33 分钟前
2026 ROS 2 Lyrical 工程实例(一):从零搭建 AMR 激光 SLAM——Gazebo、slam_toolbox 与 Nav2 全链路跑通
算法
巴糖33 分钟前
为什么你的大模型总在胡说八道?—— top_k /top_p/temperature 调参实战手册
算法
rou38 分钟前
LeetCode410.分割数组的最大值
算法
垆边人似月.40 分钟前
华为题:字符串中最长连续数字串
开发语言·c++·算法
_不会dp不改名_42 分钟前
leetcode_3273 数位平方和的最大值
算法·leetcode·职场和发展