SpringBoot中 集成 redisTemplate 对 Redis 的操作(二)
List 类型的操作
1、 向列表左侧添加数据
Long leftPush = redisTemplate.opsForList().leftPush("name", name);
2、 向列表右侧添加数据
Long rightPush = redisTemplate.opsForList().rightPush("name", name);
3、 向列表左侧批量添加数据
ArrayList<Object> list = new ArrayList<>();
list.add("shanghai");
list.add("shenzhen");
list.add("beijing");
redisTemplate.opsForList().leftPushAll("address", list);
4、 查询列表中指定索引的值
Object name = redisTemplate.opsForList().index("name", index);
5、 查询列表指定范围内的值
List range = redisTemplate.opsForList().range(key, sIndex, eIndex);
6、 修改列表中 指定索引的值
redisTemplate.opsForList().set(key, index, object);
7、 截取列表中指定范围内的值
redisTemplate.opsForList().trim(key, sIndex, eIndex);
8、 移除列表中指定索引和指定值
Long remove = redisTemplate.opsForList().remove(key, index, object);
9、 弹出列表左侧的值
Object o = redisTemplate.opsForList().leftPop(key);
10、 弹出列表右侧的值
Object o = redisTemplate.opsForList().rightPop(key, time, TimeUnit.MILLISECONDS);
11、弹出指定列表右侧的值,并把值添加到另一指定列表的左侧
Object o = redisTemplate.opsForList().rightPopAndLeftPush(key1, key2, time, TimeUnit.SECONDS);
Hash 类型的操作
在操作hash 数据类型前,同样我们自定义下 序列化规则
//定义Hash key 序列化 方式
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
//定义Hash value 序列化方式
redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
1、 添加 key-value
redisTemplate.opsForHash().put(key,hkey,hvalue);
2、 批量添加key-value
HashMap<Object, Object> map = new HashMap<>();
map.put("num", 2);
map.put("name", "susu");
map.put("age", 18);
redisTemplate.opsForHash().putAll(key, map);
3、 获取 指定对象所有的 hash 值
Map entries = redisTemplate.opsForHash().entries(key);
4、 获取指定对象的所有key
Set keys = redisTemplate.opsForHash().keys(key);
5、 获取指定对象的所有value
List values = redisTemplate.opsForHash().values(key);
6、 获取指定对象的指定 key 的 value
Object o = redisTemplate.opsForHash().get(key, hkey);
7、 根据指定对象的key 删除value值
Long delete = redisTemplate.opsForHash().delete(key, hkey);
8、 获取指定对象的特定key 对应的value 的长度
Long lengthOfValue = redisTemplate.opsForHash().lengthOfValue(key, hkey);