redis的hash类型操作方法
一、介绍
- Hash是一个键值对的集合。Hash 是一个 String 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。
- Hash存储结构优化:
- 如果field数量较少,存储结构优化为类数组结构
- 如果field数量较多,存储结构使用HashMap结构
二、原生操作
1.增加/修改【key的field的value】
- 增加/修改
hset key field value
如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。 如果字段已经存在于哈希表中,旧值将被重写
- 增加(多个)
hmset key field1 value1 field2 value2……
- 增加(锁,只有field不存在时生效)
hsetnx key field value
如果哈希表不存在,一个新的哈希表被创建并进行 hsetnx 操作。
如果字段已经存在于哈希表中,操作无效。
如果 key 不存在,一个新哈希表被创建并执行 hsetnx 命令
2.查询
- 查询一个(key的field的value)
hget key field
- 查询所有field
hkeys key
- 查询所有value
hvals key
3.删除【key的field】
- 删除一个或多个
hdel key field1 field2……
不存在的字段将被忽略
方法 判断指定key中是否存在field
hexists key field
三、java操作redis的hash类型
1.修改
- 重新命名当前key的名称
redisTemplate.boundHashOps(key).rename("test");
2.查询
- 根据指定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<Object, Object> entries = redisTemplate.boundHashOps("demo").entries();
3.删除
- 根据指定key中得键删除
redisTemplate.boundHashOps("demo").delete("1");
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!