- 使用缓存的目的是为了减少数据库的压力。
-
必须设置缓存过期时间,防止野数据出现。
-
缓存适用于读多写少的场合,查询时缓存命中率很低、写操作很频繁等场景不适宜用缓存。
-
引入依赖
<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();
}
}
接下来就可以愉快的使用啦!
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于