redis 五种基本数据结构(三)
三.Hash(散列表类型)
1.简介
Redis 的哈希是键值对的集合。Redis 的哈希值是字符串字段和字符串值之间的映射,因此它们被用来表示对象,还有用户信息之类的,经常变动的信息。
redis的hash相当于hashmap,内部实现上和hashmap一致,数组+链表的数据结构,且redis的hash数据类型只能是字符串。
![在这里插入图片描述](https://img-blog.csdnimg.cn/c440e779231a46319b051ab59553d3a4.png#pic_center)
2.常用命令
(1)hset命令(存储一个哈希键值对的集合):hset key field value
![在这里插入图片描述](https://img-blog.csdnimg.cn/99566f9a7a91469abd2a36b54eaefaf1.png#pic_center)
(2)hget命令(获取一个哈希键的值):hget key field
![在这里插入图片描述](https://img-blog.csdnimg.cn/8c93056c8ad54f46a25b7a0f1b37023b.png#pic_center)
(3)hmset命令(存储一个或多个哈希是键值对的集合):hmset key field1 value1 …fieldN keyN
![在这里插入图片描述](https://img-blog.csdnimg.cn/89c54d4fe69a4a4caea7482428704f3b.png#pic_center)
(4)hmget命令( 获取多个指定的键的值):hmget key field1 … fieldN
![在这里插入图片描述](https://img-blog.csdnimg.cn/8d0e9c2d1a8a4b2d82721d3362b33a94.png#pic_center)
(5)hexists命令(判断哈希表中的字段名是否存在 如果存在返回 1 否则返回 0):hexists key field
![在这里插入图片描述](https://img-blog.csdnimg.cn/571ca8eb4e2e47a1916f2f75193e4e88.png#pic_center)
(6)hdel命令(删除一个或多个字段): hdel key field
![在这里插入图片描述](https://img-blog.csdnimg.cn/d69f8d5321e44b80bc25e1aeac9fc26d.png#pic_center)
(7)hgetall命令( 获取一个哈希是键值对的集合): hgetall key
![在这里插入图片描述](https://img-blog.csdnimg.cn/3e6cf5bd9d5d4bc9b1032dfe3e36cbe0.png#pic_center)
(8)hvals命令( 只返回字段值): hvals key
![在这里插入图片描述](https://img-blog.csdnimg.cn/6886a0cc260f4587a1ad64e6d87e54e7.png#pic_center)
(9)hkeys命令(只返回字段名): hkeys key
![在这里插入图片描述](https://img-blog.csdnimg.cn/ff1305d18d444facb8449e1c128c8601.png#pic_center)
(10)hlen命令(返回 key 的 hash 的元素个数): hlen key
![在这里插入图片描述](https://img-blog.csdnimg.cn/f26dd3cf9ce642e6a80e7181dcf42193.png#pic_center)
(11)hsetnx命令(如果该键不存在就创建,如果该键存在就创建失败。):hsetnx key field value
![在这里插入图片描述](https://img-blog.csdnimg.cn/f3c51c4391cb4f8bb9e99fd9838c660a.png#pic_center)
(3)应用场景
用于存储结构体,部分需要变更的数据,例如存储用户信息等