RedisTemplate方法详解
Posted dw3306
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RedisTemplate方法详解相关的知识,希望对你有一定的参考价值。
RedisTemplate方法详解
1:Redis的String数据结构
设置当前的key以及value值
redisTemplate.opsForValue().set(key, value)
redisTemplate.opsForValue().set("num","123");
设置当前的key以及value值并且设置过期时间
redisTemplate.opsForValue().set(key, value, timeout, unit)
redisTemplate.opsForValue().set("num","123",10, TimeUnit.SECONDS);
TimeUnit.DAYS //天
TimeUnit.HOURS //小时
TimeUnit.MINUTES //分钟
TimeUnit.SECONDS //秒
TimeUnit.MILLISECONDS //毫秒
将旧的key设置为value,并且返回旧的key(设置key的字符串value并返回其旧值)
redisTemplate.opsForValue().getAndSet(key, value);
在原有的值基础上新增字符串到末尾
redisTemplate.opsForValue().append(key, value)
获取字符串的长度
redisTemplate.opsForValue().size(key)
重新设置key对应的值,如果存在返回false,否则返回true
redisTemplate.opsForValue().setIfAbsent(key, value)
设置map集合到redis
Map valueMap = new HashMap(); valueMap.put("valueMap1","map1"); valueMap.put("valueMap2","map2"); valueMap.put("valueMap3","map3"); redisTemplate.opsForValue().multiSet(valueMap);
如果对应的map集合名称不存在,则添加否则不做修改
Map valueMap = new HashMap(); valueMap.put("valueMap1","map1"); valueMap.put("valueMap2","map2"); valueMap.put("valueMap3","map3"); redisTemplate.opsForValue().multiSetIfAbsent(valueMap);
通过increment(K key, long delta)方法以增量方式存储long值(正值则自增,负值则自减)
redisTemplate.opsForValue().increment(key, increment);
批量获取值
public List<String> multiGet(Collection<String> keys) { return redisTemplate.opsForValue().multiGet(keys); }
返回传入key所存储的值的类型
redisTemplate.type(key);
修改redis中key的名称
public void renameKey(String oldKey, String newKey) { redisTemplate.rename(oldKey, newKey); }
如果旧值key存在时,将旧值改为新值
public Boolean renameOldKeyIfAbsent(String oldKey, String newKey) { return redisTemplate.renameIfAbsent(oldKey, newKey); }
判断是否有key所对应的值,有则返回true,没有则返回false
redisTemplate.hasKey(key)
删除单个key值
redisTemplate.delete(key)
批量删除key
redisTemplate.delete(keys) //其中keys:Collection<K> keys
设置过期时间
public Boolean expire(String key, long timeout, TimeUnit unit) { return redisTemplate.expire(key, timeout, unit); }
public Boolean expireAt(String key, Date date) { return redisTemplate.expireAt(key, date); }
返回当前key所对应的剩余过期时间
redisTemplate.getExpire(key);
返回剩余过期时间并且指定时间单位
public Long getExpire(String key, TimeUnit unit) {
return redisTemplate.getExpire(key, unit);
}
查找匹配的key值,返回一个Set集合类型
public Set<String> getPatternKey(String pattern) { return redisTemplate.keys(pattern); }
将key持久化保存
public Boolean persistKey(String key) { return redisTemplate.persist(key); }
将当前数据库的key移动到指定redis中数据库当中
public Boolean moveToDbIndex(String key, int dbIndex) { return redisTemplate.move(key, dbIndex); }
2、Hash类型
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
Redis 中每个 hash 可以存储 2^32 - 1 键值对(40多亿)。
参考:
https://www.cnblogs.com/qingmuchuanqi48/p/12293002.html
以上是关于RedisTemplate方法详解的主要内容,如果未能解决你的问题,请参考以下文章
Redis系列--7RedisTemplate和 Serializer详解
解决使用redisTemplate set方法保存出现x00问题