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

相关推荐
取名真是36 分钟前
Python 算法知识点从基础到进阶
开发语言·python·算法
罗西的思考1 小时前
【轻量化复刻大模型 / KIMI K3】KDA 模块交互式演示
人工智能·算法·机器学习
Fatbobman(东坡肘子)2 小时前
快速消失的硬盘容量 -- 肘子的 Swift 周报 #160
开发语言·人工智能·redis·ios·swiftui·iphone·swift
温暖小土3 小时前
在 CentOS 上安装 Redis Stack
linux·redis·centos
nm_zfyjt3 小时前
信息流广告投放优化实践:线索成本评估模型与转化链路重构(家装建材案例)
算法·重构·内蒙古朋友圈广告服务商·内蒙古朋友圈获客
w_zero_one4 小时前
算法--构造
java·数据结构·算法
其实防守也摸鱼5 小时前
信创安全竞赛知识总结与题库
大数据·网络·人工智能·算法·安全·php
Mikko76 小时前
Redis 连接数满了服务端有错误信息吗?连接数不增加却命令超时?6.2 实测连接池、超时与大 key 怎么判定
java·spring boot·redis·后端
小超人诞生日记6 小时前
C++ 智能指针的使用及其原理详解
c++·算法