版权声明:本文为博主原创文章,遵循 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高级程序开发微信公众号