一、介绍
- 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");标签:boundHashOps,hash,key,操作方法,redis,value,field,哈希,redisTemplate From: https://www.cnblogs.com/visioning/p/17743110.html