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

相关推荐
YuK.W15 分钟前
Leetcode100: 94.二叉树中序遍历、104.二叉树最大深度、226.翻转二叉树
java·算法·leetcode·二叉树
气泡音人声分离1 小时前
技术解析|均衡器(EQ)工作原理与实操指南:从频率拆分到听感优化
算法·均衡器·音频剪辑
weixin_413063211 小时前
复现 MatchED 边缘检测模型(单张图片重复8次,训练200 epoch)
python·算法·计算机视觉·边缘检测模型
2601_962440841 小时前
计算机毕业设计之jsp教室管理系统
java·开发语言·笔记·分布式·算法·课程设计·推荐算法
AI视频剪辑官2 小时前
播客切片工具选型核心评价维度
网络·人工智能·算法
复杂网络4 小时前
AI 不睡觉,但它比你更会做实验
算法
贵慜_Derek5 小时前
MAI-04|干净数据在工程上意味着什么:MAI 预训练数据治理
人工智能·算法·llm
晚安code5 小时前
缓存击穿、穿透、雪崩一次讲透:附 Redis hotkey 实战
redis
wear工程师5 小时前
Redis 分布式锁到底靠不靠谱:从 SETNX 到 Redlock,我踩过的坑和业内的争议
redis·面试