- A+
redis-redisTemplate模糊匹配删除
String key = "noteUserListenedPoi:*";
redisTemplate.delete(key);
LOGGER.info("redis中用户收听历史被清空");
Set<String> keys = redisTemplate.keys("noteUserListenedPoi:" + "*");
redisTemplate.delete(keys);
LOGGER.info("{}, redis中用户收听历史被清空"
Redis模糊查询
public Set keys(String pattern){
return stringRedisTemplate.keys("*" + pattern + "*");
// return stringRedisTemplate.keys("?" + pattern);
// return stringRedisTemplate.keys("[" + pattern + "]");
}
批量查询
Set<String> keysList = stringRedisTemplate.keys(keys);
List<String> strings = stringRedisTemplate.opsForValue().multiGet(keysList);
单个
批量设置或者查询
List<String> keys = new ArrayList<>();
//初始keys
List<YourObject> list = this.redisTemplate.opsForValue().multiGet(keys);
public void getBatch(List<String> keys, long expireTime) {
//使用pipeline方式
redisTemplate.executePipelined(new RedisCallback<List<Object>>() {
@Override
public List<Object> doInRedis(RedisConnection connection) throws DataAccessException {
keys.forEach(e -> {
connection.get(redisTemplate.getKeySerializer().serialize(e))
});
return null;
}
});
}
批量设置Set
Map<String,String> map= new HashMap<>();
this.redisTemplate.opsForValue().multiSet(map);
public void setBatch(Map<String, Map> map, long expireTime) {
//使用pipeline方式
redisTemplate.executePipelined(new RedisCallback<List<Object>>() {
@Override
public List<Object> doInRedis(RedisConnection connection) throws DataAccessException {
map.forEach((key, value) -> {
if (expireTime > 0) {
connection.setEx(redisTemplate.getKeySerializer().serialize(key), expireTime, redisTemplate.getValueSerializer().serialize(value));
} else {
connection.set(redisTemplate.getKeySerializer().serialize(key), redisTemplate.getValueSerializer().serialize(value));
}
});
return null;
}
});
}