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方法详解的主要内容,如果未能解决你的问题,请参考以下文章

从入门到精通,超强 RedisTemplate 方法详解!

Redis系列--7RedisTemplate和 Serializer详解

解决使用redisTemplate set方法保存出现x00问题

redisTemplate 方法

Redis 数据类型操作指令以及对应的RedisTemplate方法

RedisTemplate常用方法(超详细)