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类型是稀疏的,关系型数据库是完全结构化的

相关推荐
学Linux的语莫几秒前
大模型微调数据集格式详解:Alpaca、ShareGPT、DPO、KTO、预训练数据怎么构建?
人工智能·算法·机器学习·微调格式
wayz112 分钟前
Momentum:UO(终极震荡指标)技术指标详解
算法·金融·数据分析·量化交易·特征工程
Boom_Shu9 分钟前
浅拷贝与深拷贝
开发语言·c++·算法
触底反弹35 分钟前
一文彻底搞懂 JavaScript 栈和队列(建议收藏)
javascript·算法·面试
WL学习笔记40 分钟前
通讯录(顺序表实现)
c语言·数据结构·算法
码云骑士1 小时前
05-Python字典底层原理-Hash表与有序性的真相
开发语言·python·哈希算法
Jerryhut1 小时前
opencv对齐算法及其应用
人工智能·opencv·算法
果丁智能1 小时前
智慧校园一卡通深度融合方案:基于超级SIM卡的手机碰一碰智能开锁技术落地实践
数据结构·人工智能·python·科技·算法·智能家居·信息与通信
满怀冰雪1 小时前
第13篇-栈算法入门-括号匹配-表达式与单调栈基础
java·算法
TCW11211 小时前
AI底层系列:用C++实现线性代数的公式推导与算法设计-基础篇-5.矩阵方程
人工智能·线性代数·算法