详谈redis命令之散列(HASH)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41969845/article/details/108661482

一、前言

散列(HASH)在《详谈redis数据结构》中也介绍过,是以键值对存储的无序的数据结构,如果对散列(HASH)不太熟悉的读者可以回头去仔细读一遍。本文将讲述HASH的一些常用命令,包括添加、删除、获取、自增、自减等操作。对Java不太熟悉的同学可以阅读本文末尾的微信公众号Java系列文章。

二、HASH命令

2.1 HSET

HSET全称hash set
关联键值对,返回“1”表示成功,“0”表示失败

System.out.println(conn.hset("hash-key","name","Kelvin"));

在这里插入图片描述
将“name”–“Kelvin”这样的键值对添加到“hash-key”这样的散列里面。查看redis里面的“hash-key”
在这里插入图片描述

2.2 HGET

HGET全称hash get
获取某个键的值

System.out.println(conn.hget("hash-key","name"));

在这里插入图片描述

2.3 HMSET

HMSET全称hash many set
为散列里的一个或多个键设置

Map<String, String> map = new HashMap<>();
map.put("name","Kelvin");
map.put("age","20");
map.put("country","China");
map.put("university","杭州电子科技大学");
System.out.println(conn.hmset("hash-key", map));

如上代码所示,我们需要将我们要存入hash的键值对先存入map里面,然后将map作为参数传到hmset命令里面。
在这里插入图片描述

2.4 HMGET

HMGET全称hash many get
从散列里面获取一个或多个键的值

System.out.println(conn.hmget("hash-key", "name","age","country","university"));

在这里插入图片描述

2.5 HDEL

HDEL全称hash delete
删除散列里面的一个或多个键值对,返回成功找到并删除的键值对数目

System.out.println(conn.hdel("hash-key", "name","university"));

在这里插入图片描述

2.6 HLEN

HLEN全称hash length
返回散列包含的键值对的数量

System.out.println(conn.hlen("hash-key"));

在这里插入图片描述
查看redis,是否和2进行匹配
在这里插入图片描述
hash-key中确实是两个元素,匹配。

2.7 HEXISTS

HEXISTS全称hash exists
检查给定键是否存在于散列中

System.out.println(conn.hget("hash-key","age"));
System.out.println(conn.hexists("hash-key","age"));

age确实存在
在这里插入图片描述

2.8 HKEYS

HKEYS全称hash keys
获取散列包含的所有键

System.out.println(conn.hkeys("hash-key"));

在这里插入图片描述

2.9 HVALS

HVALS全称hash valus
获取散列包含的所有值

System.out.println(conn.hvals("hash-key"));

在这里插入图片描述

2.10 HGETALL

HGETALL全称hash getall
获取散列包含的所有键值对

System.out.println(conn.hgetAll("hash-key"));

在这里插入图片描述

2.11 HINCRBY

HINCRBY全称hash increase by
将键key存储的值加上一个指定整数

System.out.println(conn.hgetAll("hash-key"));
System.out.println(conn.hincrBy("hash-key","age",20));
System.out.println(conn.hgetAll("hash-key"));

给age增加20.
在这里插入图片描述

2.12 HINCRBYFLOAT

HINCRBYFLOAT全称hash increase by float
将键key上存储的值加上浮点数increment

System.out.println(conn.hgetAll("hash-key"));
System.out.println(conn.hincrByFloat("hash-key","age",0.5));
System.out.println(conn.hgetAll("hash-key"));

在这里插入图片描述

总结

散列的命令就是以上这些,在实际开发中根据场景灵活运用便可以很好地掌握redis。比如HGETALL和HKEYS和HVALS在不同的场景各有各的好处,存储数据较少时一下子用HGETALL全部取出来可以很方便地实现,但是数据量比较大的时候,用HKEYS先取出所有的键,再用HGETS取出所要的键值,就可以减少单位时间的数据量,减轻服务器的压力。

对Java系列知识感兴趣的朋友可以加入QQ群
慧梦软件开发技术联盟:952317701
更多系列文章在java高级程序开发微信公众号
Java高级开发技术

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值