一. 背景说明小白:伟哥,JAVA中的Map集合类型在redis中有对应的存储吗?
伟哥:有的,我带你撸一波 。
二、概述【Redis干货 | 五种常用类型之Hash哈希存储类型详解】Redis的hash哈希存储类型,类似于是java中的map存储结构,适合用来存储对象,每个哈希最多可以存储4294967295(2^32-1)个字段值对,具体数量实际上也受Redis部署的虚拟机上的总内存的限制 。
理解了它的数据结构后,接下来伟哥带你开启命令操作之旅 。
三、hset、hgethset、hget主要用来设置和获取单条数据,格式说明如下:
#贴心测试如下: #设置值hset key field value192.168.65.15:6379> hset u1 name zs (integer) 1#获取值 hget key field192.168.65.15:6379> hget u1 name"zs"#获取值:如果key不存返回nil192.168.65.15:6379> hget u2 name(nil)#获取值:如果field不存返回nil192.168.65.15:6379> hget u1 name1(nil)
四、hmset、hmget上述一条一条地增加数据有点繁琐,为此,Redis准备了多条数据的操作,格式如下:
#贴心测试如下:#批量设置值192.168.65.15:6379> hmset u1 name zs age 22 sex boyOK#批量获取值,按field顺序显示192.168.65.15:6379> hmget u1 name age sex1) "zs"2) "22"3) "boy"#如果key不存在,则返回nil192.168.65.15:6379> hmget u2 name1) (nil)#如果field不存在,则返回nil192.168.65.15:6379> hmget u1 name name11) "zs"2) (nil)
五、hincrby、hsetnx如果value是数值类型,我们可以用hincrby来增加大小;在添加时如果key-field不存在,才实现添加,可以用hsetnx命令 。具体格式如下:
#贴心测试如下:#查看age原来的值192.168.65.15:6379> hget u1 age"22"#hincrby给age增加5192.168.65.15:6379> hincrby u1 age 5(integer) 27#查看增加后的结果22+5=27192.168.65.15:6379> hget u1 age"27"#hsetnx设置如果field存在,则不添加 192.168.65.15:6379> hsetnxu1 age 22(integer) 0#查看age还是27,没有变化192.168.65.15:6379> hget u1 age"27"#hsetnx设置如果field不存在,添加 192.168.65.15:6379> hsetnx u1 age1 22 (integer) 1#查看age1是22192.168.65.15:6379> hget u1 age1"22"
六、hexists、hgetall、hkeys、hvals、hlen在查询时,有时我们需要知道key是否存在?存在的话有多少个field?如何显示所有的内容?如何显示所有的field或者value?为解决这些问题,伟哥帮你收集以下命令来解决:
#贴心测试如下:#检查field是否存在192.168.65.15:6379> hexists u1 age(integer) 1#如果key不存在,返回0192.168.65.15:6379> hexists u2 age(integer) 0#如果field不存在,返回0192.168.65.15:6379> hexists u1 age2(integer) 0#获取u1结构中的全部field和value192.168.65.15:6379> hgetall u1 1) "name"2) "zs"3) "age"4) "27"5) "sex"6) "boy"7) "age1"8) "22"#获取u1结构中的全部field192.168.65.15:6379> hkeys u1 1) "name"2) "age"3) "sex"4) "age1"#获取u1结构中的全部value192.168.65.15:6379> hvals u1 1) "zs"2) "27"3) "boy"4) "22"#获取u1结构中field的数量192.168.65.15:6379> hlen u1 (integer) 4
七、hdel我们一般用的删除单词是remove 和delete,这里删除用的是hdel,h表示hashes,del表示delete,具体如下:
#贴心测试如下:#查看u1的数据192.168.65.15:6379> hgetall u11) "name"2) "zs"3) "age"4) "27"5) "sex"6) "boy"7) "age1"8) "22"#删除u1中 age1和 sex的数据192.168.65.15:6379> hdel u1 age1 sex(integer) 2#查看删除结果192.168.65.15:6379> hgetall u11) "name"2) "zs"3) "age"4) "27"
关于Redis常用类型之Hash哈希存储类型就分享到这里了,你都理解了吗?有疑问可以留言讨论哟!
推荐阅读
- SpringBoot通过一个注解结合Redis实现接口限流就是这么简单
- 职场干货:如何在单位里做一个靠谱的人!
- 一个亿的keys,Redis如何统计?
- 首个Unified Redis Release,Redis影响最深远的版本发布
- Redis的原理,及各个组件和操作。
- Redis断连,我们该如何抢救
- 行政管理五种职能方法 行政管理的职能主要有
- 这五种文玩是不是让你入坑的文玩?
- 我国常用的用电安全色为哪五种? 我国常用的用电安全色为哪五种
- 五种招鬼的树阴气最重的五种树木 五种招鬼的树阴气最重的五种树木是什么