public class RedisCache {
private RedisTemplate<String, String> redisTemplate;
private ZSetOperations<String, String> zSetOperations;
private HashOperations<String, String, String> hmapOperations;
public RedisCache() {}
public RedisCache(RedisTemplate<String, String> redisTemplate) {
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new StringRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setHashValueSerializer(new StringRedisSerializer());
redisTemplate.setDefaultSerializer(new StringRedisSerializer());
this.redisTemplate = redisTemplate;
this.zSetOperations = redisTemplate.opsForZSet();
this.hmapOperations = redisTemplate.opsForHash();
}
}
如果你需要put对象,则封装一层方法 JSON.toJSONString(Object)即可。
如果是Double等,则String.valueOf(Double)。即String基本上可以适用所有的情况。
使用redis务必注意!!!一定要设置serializer.默认的是JDK的,序列化出来redis的数据前面会多一堆xxx数据。
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new StringRedisSerializer());
//redisTemplate.setDefaultSerializer();
如果用了hashmap,一定要设置
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setHashValueSerializer(new StringRedisSerializer());
否则:
127.0.0.1:6379[1]> hgetall galileo.jobmgr.alert.recovery.policy.instant.map
1) “\xac\xed\x00\x05t\x00$9950d812-6d2d-4f8a-abaa-b6bdf6b4e780”
2) “\xac\xed\x00\x05t\x00\n1500020130”