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

相关推荐
YOU OU9 小时前
Redis基础常识与命令
数据库·redis·缓存
To_OC9 小时前
LC 51 N 皇后:我以为难的是回溯,结果栽在了对角线下标
javascript·算法·leetcode
2401_8414956410 小时前
【操作系统】进程同步与互斥实验报告
c++·算法·操作系统·进程·并发·同步·互斥
吳所畏惧13 小时前
宝塔面板Redis密码修改指南:SSH命令修改 vs 面板UI界面修改,哪个更靠谱?
运维·服务器·数据库·redis·缓存·ssh
爱刷碗的苏泓舒14 小时前
PPP-AR 中的参考星选取:数学原理、评价指标与切换处理
算法·gnss·模糊度固定·ppp-ar·星间单差·参考星·卫星端偏差
赵丙双14 小时前
Redis 概率相关的数据类型
redis
烬羽17 小时前
递归老写崩?一个"退回"公式,把回溯题变成填空题
javascript·深度学习·算法
闪电悠米17 小时前
力扣hot100-41.缺失的第一个正数-原地哈希详解
数据结构·算法·哈希算法
星空露珠17 小时前
28种颜色对应名称,
开发语言·数据库·算法·游戏·lua