redis的hash类型操作方法

2023-12-07 0 964
目录
  • 简介
  • 原生操作
    • 增加/修改【key的field的value】
    • 查询
    • 删除【key的field】
  • java操作redis的hash类型
    • 修改
    • 查询
    • 删除
    • 方法
    • 设置key得到期时间 TimeUnit 设置时间类型(时、分、秒…)

简介

Hash是一个键值对的集合。Hash 是一个 String 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。

Hash存储结构优化:

如果field数量较少,存储结构优化为类数组结构

如果field数量较多,存储结构使用HashMap结构

原生操作

增加/修改【key的field的value】

增加/修改

hset key field value

如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。 如果字段已经存在于哈希表中,旧值将被重写

增加(多个)

hmset key field1 value1 field2 value2……

增加(锁,只有field不存在时生效)

hsetnx key field value

如果哈希表不存在,一个新的哈希表被创建并进行 hsetnx 操作。

如果字段已经存在于哈希表中,操作无效。

如果 key 不存在,一个新哈希表被创建并执行 hsetnx 命令

查询

查询一个(key的field的value)

hget key field

查询所有field

hkeys key

查询所有value

hvals key

删除【key的field】

删除一个或多个

hdel key field1 field2……

不存在的字段将被忽略

方法 判断指定key中是否存在field

hexists key field

如果哈希表含有给定字段,返回 1 。 如果哈希表不含有给定字段,或 key 不存在,返回 0

为哈希表key中的field字段的值加上增量increment(数字)

hincrby key field increment

增量也可以为负数,相当于对指定字段进行减法操作 如果哈希表的 key 不存在,一个新的哈希表被创建并执行 hincrby 命令 如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 对一个储存字符串值的字段执行 hincrby 命令将造成一个错误

java操作redis的hash类型

【boundHashOps()】 增加 往指定key中存储 键值

redisTemplate.boundHashOps("demo").put("1",1);

批量存储到指定key中

Map<String,String> map = new HashMap<>();
map.put(\”3\”,\”zhangsan\”);
map.put(\”4\”,\”lisi\”);
redisTemplate.boundHashOps(\”demo\”).putAll(map);

根据指定key判断键是否存在,存在返回false不新增,不存在则新增键值对返回true

System.out.println(redisTemplate.boundHashOps(\”demo\”).putIfAbsent(\”7\”, 5));

修改

重新命名当前key的名称

redisTemplate.boundHashOps(key).rename(\”test\”);

查询

根据指定key中得键取出值

System.out.println(redisTemplate.boundHashOps(\”demo\”).get(\”1\”));

根据指定key取出所有键

Set<Object> keys = redisTemplate.boundHashOps(\”demo\”).keys();

获取指定key中所有键值对得值

List<Object> values = redisTemplate.boundHashOps(\”demo\”).values();
System.out.println(values);

根据指定key取出全部键值对

Map&lt;Object, Object&gt; entries = redisTemplate.boundHashOps("demo").entries();

删除

根据指定key中得键删除

redisTemplate.boundHashOps(\”demo\”).delete(\”1\”);

方法

设置key得到期时间 TimeUnit 设置时间类型(时、分、秒…)

redisTemplate.boundHashOps(\”demo\”).expire(100000, TimeUnit.MILLISECONDS);

获取当前key过期时间

System.out.println(redisTemplate.boundHashOps(\”demo\”).getExpire());

获取指定key得元素长度

Long size = redisTemplate.boundHashOps("demo").size();

判断指定key中是否存在该键

System.out.println(redisTemplate.boundHashOps("demo").hasKey("1"));

获取当前key的存储方式

System.out.println(redisTemplate.boundHashOps("demo").getType());

到此这篇关于redis的hash类型的详解的文章就介绍到这了,更多相关redis的hash类型内容请搜索悠久资源以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 Redis redis的hash类型操作方法 https://www.u-9.cn/database/redis/122573.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务