- 使用缓存的目的是为了减少数据库的压力。
-
必须设置缓存过期时间,防止野数据出现。
-
缓存适用于读多写少的场合,查询时缓存命中率很低、写操作很频繁等场景不适宜用缓存。
-
引入依赖
<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.6.0.RELEASE</version> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.8.1</version> </dependency>
spring-data-redis 使用的版本不是最新版,原因是最新版的 redisTemplate 我一直无法成功注入。
2. 配置 bean.xml
<cache:annotation-driven key-generator="myKeyGenerator"/> <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"> <!-- Redis连接池参数 --> <property name="maxIdle" value="50" /> <property name="maxWaitMillis" value="1500" /> <property name="testOnBorrow" value="true" /> </bean> <bean id="jedisConnFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <property name="hostName" value="localhost"/> <property name="port" value="6379"/> <property name="poolConfig" ref="poolConfig"/> </bean> <!-- redis template definition --> <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"> <property name="connectionFactory" ref="jedisConnFactory"/> </bean> <bean id="cacheManager" class="org.springframework.data.redis.cache.RedisCacheManager"> <constructor-arg type="org.springframework.data.redis.core.RedisOperations" ref="redisTemplate"/> <property name="defaultExpiration" value="10"/> <!-- 过期时间 --> </bean> <bean id="myKeyGenerator" class="com.zjh.cache.CacheKeyGenerator"/> <!-- 缓存键的生成策略 -->
这里注意,cacheManager 使用构造方法注入,设置的是 type,而不是 name。如果是 name 可能会导致出错
com.zjh.cache.CacheKeyGenerator 文件
package com.zjh.cache;
import java.lang.reflect.Method;
import org.springframework.cache.interceptor.KeyGenerator;
public class CacheKeyGenerator implements KeyGenerator {
@Override
public Object generate(Object target, Method method, Object... args) {
StringBuilder sb = new StringBuilder();
sb.append(target.getClass().getName());
sb.append(method.getName());
for(Object arg : args) {
sb.append(arg.toString());
}
return sb.toString();
}
}
接下来就可以愉快的使用啦!
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于