1.String类型
@Autowired
private RedisTemplate<String, String> redisTemplate;
/**
* 设置缓存
* @param key 键
* @param value 值
* @param timeout 时长
* @param timeUnit 缓存时间的类型(时/分/秒)
*/
public void set(String key, Object value, Long timeout, TimeUnit timeUnit) {
// 写入String缓存
redisTemplate.opsForValue().set(key, String.valueOf(value));
// 设置缓存时效
if (timeout != null) {
if (timeUnit != null) {
redisTemplate.expire(key, timeout, timeUnit);
} else {
redisTemplate.expire(key, timeout, TimeUnit.SECONDS);
}
}
}
/**
* 通过key获取value缓存
*/
public String get(String key) {
return redisTemplate.opsForValue().get(key);
}
2.List类型
@Autowired
private RedisTemplate<String, String> redisTemplate;
/**
* 设置List缓存
* @param key 键
* @param value 值
* @param timeout 时长
* @param timeUnit 缓存时间的类型(时/分/秒)
*/
public void setList(String key, List<String> value, Long timeout, TimeUnit timeUnit) {
// 写入List缓存;rightPush和leftPusp的区别在于(在一个数的右边加入还是左边加入)
redisTemplate.opsForList().rightPushAll(key, value);
// 在某段时间后失效
if (timeout != null) {
if (timeUnit != null) {
redisTemplate.expire(key, timeout, timeUnit);
} else {
redisTemplate.expire(key, timeout, TimeUnit.SECONDS);
}
}
}
/**
* 通过key获取value缓存
*/
public List<String> getList(String key) {
List<String> value = redisTemplate.opsForList().range(key, 0, redisTemplate.opsForList().size(key));
return value;
}
3.Set类型(不可重复的无序集合)
@Autowired
private RedisTemplate<String, String> redisTemplate;
/**
* 设置List缓存
* @param key 键
* @param value 值
* @param timeout 时长
* @param timeUnit 缓存时间的类型(时/分/秒)
*/
public void setSet(String key, String[] value, Long timeout, TimeUnit timeUnit) {
// 写入Set缓存
redisTemplate.opsForSet().add(key, value);
// 在某段时间后失效
if (timeout != null) {
if (timeUnit != null) {
redisTemplate.expire(key, timeout, timeUnit);
} else {
redisTemplate.expire(key, timeout, TimeUnit.SECONDS);
}
}
}
/**
* 通过key获取value缓存
*/
public Set<String> getSet(String key) {
Set<String> value = redisTemplate.opsForSet().members(key);
return value;
}
4.ZSet(不可重复的有序集合)
@Autowired
private RedisTemplate<String, String> redisTemplate;
/**
* 设置List缓存
* @param key 键
* @param value 值
* @param timeout 时长
* @param timeUnit 缓存时间的类型(时/分/秒)
*/
public void setZSet(String key, Set<String> valueSet, Long timeout, TimeUnit timeUnit) {
int size = valueSet.size();
for(String value: valueSet){
redisTemplate.opsForZSet().add(key, value, size);
size--;
}
// 在某段时间后失效
if (timeout != null) {
if (timeUnit != null) {
redisTemplate.expire(key, timeout, timeUnit);
} else {
redisTemplate.expire(key, timeout, TimeUnit.SECONDS);
}
}
}
/**
* 通过key获取value缓存
*/
public Set<String> getZSet(String key) {
Set<String> value = null;
if (redisTemplate.opsForZSet().size(key) != null){
value = redisTemplate.opsForZSet().reverseRange(key, 0, redisTemplate.opsForZSet().size(key));
}
return value;
}
5.Hash(键值对集合)
@Autowired
private RedisTemplate<String, String> redisTemplate;
/**
* 设置缓存
* @param key 键
* @param value 值
* @param timeout 时长
* @param timeUnit 缓存时间的类型(时/分/秒)
*/
public void set(String key, Map<String, String> value, Long timeout, TimeUnit timeUnit) {
// 写入Map缓存,
redisTemplate.opsForHash().putAll(key, value);
// 设置缓存时效
if (timeout != null) {
if (timeUnit != null) {
redisTemplate.expire(key, timeout, timeUnit);
} else {
redisTemplate.expire(key, timeout, TimeUnit.SECONDS);
}
}
}
/**
* 通过key获取value缓存
*/
public Map<String, String> getMap(String key) {
Map<Object, Object> value = redisTemplate.opsForHash().entries(key);
Map<String, String> result = new HashMap<>();
for (Map.Entry<Object, Object> entry : value.entrySet()) {
result.put(entry.getKey().toString(), entry.getValue().toString());
}
return result;
}
最终结果如下图:
如有转载请请务必保留此出处:https://blog.csdn.net/hometing218/article/details/86591796