8、Redis五大数据类型---哈希(Hash)
2021/11/15 19:13:42
本文主要是介绍8、Redis五大数据类型---哈希(Hash),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、哈希(Hash)简介:
- Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
- Redis hash 是一个键值对集合。
二、常用命令
1、hset 语法:hset <key> <field> <value>
给<key>
集合中的 <field>
键赋值<value>
127.0.0.1:6379> hset k1 name zhangsan age 12 phone 1231312 #k1里存值 (integer) 3 127.0.0.1:6379> hget k1 name "zhangsan" 127.0.0.1:6379> hget k1 phone "1231312" 127.0.0.1:6379> hset k1 name lisi #修改k1里的name的值为李四,返回0 (integer) 0 127.0.0.1:6379> hget k1 name #获取name对应的值 "lisi" 127.0.0.1:6379> hgetall k1 1) "name" 2) "lisi" 3) "age" 4) "12" 5) "phone" 6) "1231312" 127.0.0.1:6379>
2、hget 语法:hget <key1><field>从<key1>
集合<field>
取出 value
127.0.0.1:6379> hgetall k1 1) "name" 2) "zhangsan" 3) "age" 4) "12" 5) "phone" 6) "1231231" 127.0.0.1:6379> hget k1 name #获取k1集合里的name对应的值 "zhangsan" 127.0.0.1:6379>
3、hmset 语法:hmset <key1><field1><value1><field2><value2>...
批量设置hash的值,会覆盖已存在的值
127.0.0.1:6379> hmset k1 name zhangsan age 22 phone 128909908731 #批量给k1设置对应的值 OK 127.0.0.1:6379> hget k1 name "zhangsan" 127.0.0.1:6379> hget k1 age "22" 127.0.0.1:6379> hget k1 phone "128909908731"
4、hexists`语法:hexists ·查看哈希表 key 中,给定域 field 是否存在。
127.0.0.1:6379> hgetall k1 1) "name" 2) "zhangsan" 3) "age" 4) "22" 5) "phone" 6) "128909908731" 127.0.0.1:6379> hexists k1 name #判断k1中name对应的值是否存在,存在就返回1,反之返回0 (integer) 1 127.0.0.1:6379> hexists k1 sex (integer) 0 127.0.0.1:6379>
5、hkeys 语法:hkeys <key>
列出该hash集合的所有field
127.0.0.1:6379> hgetall k1 1) "name" 2) "zhangsan" 3) "age" 4) "22" 5) "phone" 6) "128909908731" 127.0.0.1:6379> hkeys k1 #展示出k1里面的所有filed值 1) "name" 2) "age" 3) "phone" 127.0.0.1:6379>
6、hvals 语法:hvals <key>
列出该hash集合的所有value
127.0.0.1:6379> hgetall k1 1) "name" 2) "zhangsan" 3) "age" 4) "22" 5) "phone" 6) "128909908731" 127.0.0.1:6379> hvals k1 #获取k1中所有的value值 1) "zhangsan" 2) "22" 3) "128909908731" 127.0.0.1:6379>
7、hincrby 语法:hincrby <key><field><increment>
为哈希表 key 中的域 field 的值加上增量 1 -1
127.0.0.1:6379> hset k1 age 12 (integer) 1 127.0.0.1:6379> hget k1 age "12" 127.0.0.1:6379> hincrby k1 age 3 #让年龄增加3 (integer) 15
8、hsetnx 语法<:hsetnx key><field><value>
将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在.
127.0.0.1:6379> hgetall k1 1) "age" 2) "15" 127.0.0.1:6379> hsetnx k1 age 12 #设置存在的filed的值,返回0 (integer) 0 127.0.0.1:6379> hget k1 age "15" 127.0.0.1:6379> hsetnx k1 name zhangsan #设置不存的filed值,返回1,设置成功 (integer) 1 127.0.0.1:6379> hget k1 name "zhangsan"
三、总结
- 适合存储对象,如用户信息,商品信息
127.0.0.1:6379> hset user:1 name why (integer) 1 127.0.0.1:6379> hget user:1 name "why" 127.0.0.1:6379> hset user:2 name lisi (integer) 1 127.0.0.1:6379> hget user:2 name "lisi"
- 计数器
- Redis 哈希表作为计数器的使用也非常广泛。它常常被用在记录网站每一天、一月、一年的访问数量。每一次访问,我们在对应的field上自增1
#记录商品的好评数量,差评数量上 127.0.0.1:6379> HINCRBY pid:1 Good 1 (integer) 1 127.0.0.1:6379> HINCRBY pid:1 Good 1 (integer) 2 127.0.0.1:6379> HINCRBY pid:1 bad 1 (integer) 1
本章redis的hash值,就介绍到这里,有不足指出请在评论区指出,大家一起学习!
这篇关于8、Redis五大数据类型---哈希(Hash)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-18Redis安装入门:新手必读指南
- 2024-11-08阿里云Redis项目实战入门教程
- 2024-11-08阿里云Redis资料:新手入门与初级使用指南
- 2024-11-08阿里云Redis教程:新手入门及实用指南
- 2024-11-07阿里云Redis学习入门:新手必读指南
- 2024-11-07阿里云Redis学习入门:从零开始的操作指南
- 2024-11-07阿里云Redis学习:初学者指南
- 2024-11-06阿里云Redis入门教程:轻松搭建与使用指南
- 2024-11-02Redis项目实战:新手入门教程
- 2024-10-22Redis入门教程:轻松掌握数据存储与操作