当前位置:网站首页>Redis 常用数据类型之 hash(哈希)
Redis 常用数据类型之 hash(哈希)
2022-08-07 05:04:00 【Wayfreem】
Redis 常用数据类型之 hash(哈希)
hash 哈希的特性
Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。
Redis 中每个 hash 可以存储
- 1 键值对(40多亿)。
hash 相关命令
操作 | 命令 | 例子 | 说明 |
存 | hset | hset key name value | 设置值 |
存多个键值对 | hmset | hmset key name value name1 value1 | 一次性存入多个值 |
取 | hget | hget key name | |
取多个值 | hmget | hmget key name name1 | 获取多个值 |
取所有属性与值 | hgetall | hgetall key | |
删除单个/多个key值 | hdel | hdel key name1 name2 | 当删除一个空的 hash 时(key存在),会返回一个0 |
删除集合 | del | del key | 删除整个hash |
增加指定的数值 | hincrby | hincrby key name 指定数值 | 增加指定的数值,类似于 String 中的 incryby 操作 |
判断集合中是否存在指定的key | hexists | hexists key name | hexists 判断 hash 中的某个属性是否存在,存在返回 1,不存在返回0 |
获取属性的个数 | hlen | hlen key | 获取当前key 的 name 的个数 |
获取所有属性的名称 | hkeys | hkeys key | 获取当前 key 中 name 的值 |
获取所有属性的值 | hvals | hvals key | 获取当前 key 中所有属性的值 |
详细说明
基础操作(hset、hget、hmset、hmget)
127.0.0.1:6379> hset myhash name Tom # 设置 一个具体的 key-value
(integer) 1
127.0.0.1:6379> hget myhash name # 获取名称
"Tom"
127.0.0.1:6379> hmset myhash age 12 flag true # 同时设置多个值(可以设置 key 存在的元素,也可以设置不存在的元素)
OK
127.0.0.1:6379> hmget myhash age name flag # 同时获取 myhash 下面的 age、name、flag 值
1) "12"
2) "Tom"
3) "true"
127.0.0.1:6379> hgetall myhash # 获取 myhash 下面所有的 key-value
1) "name"
2) "Tom"
3) "age"
4) "12"
5) "flag"
6) "true"
127.0.0.1:6379> hmset myhashTest age 12 # 添加一个不存在的 hash key
OK
127.0.0.1:6379> keys m* # 查看以 m开头的 key元素
1) "myhashTest"
2) "myhash"
127.0.0.1:6379>
获取属性相关操作(hlen、hkeys、hvals)
127.0.0.1:6379> hlen myhash # 获取hash 中的字段数量
(integer) 3
127.0.0.1:6379> hkeys myhash # 获取hash 中所有的 key
1) "name"
2) "age"
3) "flag"
127.0.0.1:6379> hvals myhash # 获取hash 中所有的value
1) "Tom"
2) "12"
3) "true"
127.0.0.1:6379>判断存在与增加指定的值(hexists、hincrby)
127.0.0.1:6379> hexists myhash test # 判断是否存在,不存在返回 0
(integer) 0
127.0.0.1:6379> hexists myhash name # 存在就返回 1
(integer) 1
127.0.0.1:6379> hincrby myhash age 2 # 指定增加数字
(integer) 14
127.0.0.1:6379>
不存在时设置值(hsetnx)
127.0.0.1:6379> hsetnx myhash age 1 # 设置 myhash 值,此时 myhash 存在,设置不成功
(integer) 0
127.0.0.1:6379> hgetall myhash # 查看是否设置成功
1) "name"
2) "Tom"
3) "age"
4) "14"
5) "flag"
6) "true"
127.0.0.1:6379> hsetnx myhash1 age 12 # 设置不存在的的值
(integer) 1
127.0.0.1:6379> keys my*
1) "myhashTest"
2) "myhash"
3) "myhash1"
127.0.0.1:6379>
边栏推荐
- [Shader realizes the overall distortion effect of Distortion_Shader Effect Chapter 17]
- @RequestBody
- Through document url for base64;Through image url access to base64;Js file for base64
- 从简历被拒到收割8个大厂offer,我用了3个月成功破茧成蝶
- Regular tool class
- 【TypeScript笔记】03 - TS类型声明文件
- Golang = is summarized
- One Pass 1225 - Treasure Island
- npm install encountered Unexpected end of JSON input while parsing near '...onnect": "^2.0.0", "gru" problem solved
- 洛谷P1218 特殊的质数肋骨 Superprime Rib
猜你喜欢

Empty suite

IDEA 2022.2 发布,骚操作、跟不上

MySQL进阶1——底层数据结构B+树

不是吧,10:00面试,10:08就出来了 ,问的实在是太...

The setting and clearing of the inconsistency between the data displayed in the Excel cell and the actual data

线性代数学习笔记6-4:行列式的应用(用伴随矩阵求逆矩阵、克莱姆法则解方程、行列式求面积/体积)

后勤仓库物资领用发放小程序开发制作功能介绍

线性代数学习笔记4-3:求解齐次线性方程组Ax=0、消元法、行最简阶梯型矩阵RRFE

2022牛客多校六 B-Eezie and Pie (dfs)

预约家教老师上门辅导小程序开发制作功能介绍
随机推荐
共享设备租赁小程序开发制作功能介绍
Golang Break、Continue跳出多层循环
【钰娘娘】1373. 二叉搜索子树的最大键值和 DFS
阿三的CV很有意思
Linear Algebra Study Notes 4-5: Solving Systems of Linear Equations
线性代数学习笔记6-3:行列式的计算、代数余子式
Golang scope pit
详解孙宇晨“星辰大海”背后的一盘大棋,太空旅行需要更多人参与
npm install encountered Unexpected end of JSON input while parsing near '...onnect": "^2.0.0", "gru" problem solved
Supplement to Linear Algebra Study Notes 2-3: Abstract Vector Spaces
[LeetCode Daily Question] - 34. Find the first and last position of an element in a sorted array
Records about log4j security vulnerabilities and version to replace
M写日志到文本
线性代数学习笔记2-3补充:抽象向量空间
Through document url for base64;Through image url access to base64;Js file for base64
字符脱敏工具
Tips for recording WPF (2) 16-30
Terminal data encryption
C51 基本函数、中断函数和库函数的详解
Talk about 7 magic skills of Redis memory optimization