RedisTemplate
public class RedisTemplate<K, V> extends RedisAccessor implements RedisOperations<K, V>, BeanClassLoaderAware {

1.RedisTemplate是Spring提供的操作redis的类
2.Redis存取数据类型序列化为json字符串时使用StringRedisTemplate

public class StringRedisTemplate extends RedisTemplate<String, String> {

3.RedisTemplate<K,V> 写入数据乱码的解决方案:
场景:

public static void put(String key, Object value) {
        redisTemplate.opsForValue().set(key, value);
    }

Redis数据效果:

spring redis缓存页面 redistemplate缓存对象_redis


注意:虽然redis存储数据是字节,但是不影响读取数据。

解决:

//设置序列化Key的实例化对象
redisTemplate.setKeySerializer(new StringRedisSerializer());
//设置序列化Value的实例化对象
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());

当我们的数据存储到Redis的时候,我们的键(key)和值(value)都是通过Spring提供的Serializer序列化到数据库的。RedisTemplate默认使用的是JdkSerializationRedisSerializer,StringRedisTemplate默认使用的是StringRedisSerializer。 * Spring Data JPA为我们提供了下面的Serializer:

spring redis缓存页面 redistemplate缓存对象_Redis_02


附:

首次安装Redis,使用SpringBoot框架存取数据报错get resource from pool time out。

尝试以下方案:

1.重启Redis服务端

2.检查JedisPool配置参数

3.检查ip和端口号

以上尝试均无效。

最后尝试将spring.redis.host: 127.0.0.1修改为localhost。成功运行。

再将localhost修改回127.0.0.1也OK。不明觉厉!