spring 引入redis序列化 springboot配置redis序列化 SpringBoot项目使用redis非常简单,pom里面引入redis的场景启动器,在启动类上加@EnableCaching注解,项目启动会自动匹配上redis,这样项目中就可以愉快地使用了, 使用方法:要么使用@Cacheable一类的注解自动缓存,要么使用RedisTemplate手动缓存。 (前提是你的本机或者是远程主机...
RedisCacheWriter.lockingRedisCacheWriter(redisConnectionFactory),//默认Cache缓存的超时配置this.getRedisCacheConfigurationWithTtl(30),//自定义Cache缓存Key的超时配置this.getRedisCacheConfigurationMap() ); }/*** 配置自定义Cache缓存Key的超时规则 * **/publicMap<String, RedisCacheConfiguration>getRedisCacheCo...
@Cacheable(cacheNames="book", condition="#name.length() < 32", unless="#result.hardback") public Book findBook(String name) @Cacheable还可以设置:keyGenerator(指定key自动生成方法),cacheManager(指定使用的缓存管理),cacheResolver(指定使用缓存的解析器)等,这些参数比较适合全局设置,这里就不多做介绍了。
<bean id="redisCacheManager" class="org.springframework.data.redis.cache.RedisCacheManager"> <constructor-arg name="redisOperations" ref="redisTemplate"/> <!--redis缓存数据过期时间单位秒--> <property name="defaultExpiration" value="${redis.expiration}"/> <!--是否使用缓存前缀,与cachePrefix相关...
当cache将数据放入缓存时,使用了默认的序列化方式(JdkSerializationRedisSerializer),该序列化使用了二进制保存了对象的上下文ClassLoader,而由于devtools导致服务重启,然后重启后ClassLoad和原来的ClassLoader不是同一个对象了,所以导致对象的Class也不一样,虽然看上去都是User,但是它就是不同的类型,因为它的Class也不相等...
我们的cacheConfig 是通过 AppClassLoader去加载的,所以可想而知,它在进行反序列化的时候,会使用AppClassLoader 去加载我们的业务对象的类,因此也就出现了前面的类型转换错误。 继续看cacheConfig 跟进去看一看这个类是什么结构,在RedisCacheConfiguration.java 文件中发现这样一个方法: ...
<artifactId>spring-boot-starter-cache</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> ...
redis 怎么样保存cache 增加2条数据,一个是类型为zset的缓存名~keys, 里面存放了该缓存所有的key, 一个是对应的key,值为序列化后的json。 zset是带权重的有序集合,可以使用zrange config~keys -1 1 withscores查看元素,新加入的都是 0.0 。使用zcount config~keys -1 1查看个数。
添加spring-boot-starter-data-redis依赖。 使用启用缓存注解(@EnableCaching)。 需要缓存的对象实现Serializable接口。 使用@Cacheable注解缓存查询的结果。 遇到问题 在上面我们通过 spring boot 提供的 redis 实现了查询对象缓存这样一个功能,有下面几个问题: ...
5.1 Redis配置信息的正确性 5.2 RedisTemplate的配置 5.3 CacheManager的配置 5.4 缓存键的命名规范...