In diesem Artikel wird hauptsächlich die detaillierte Konfiguration der Spring 4.0-Annotations-Cache + Redis-Cache-Nutzung vorgestellt, die einen bestimmten Referenzwert hat
Vorwort:
Derzeit wurde Redis für das Projekt des Unternehmens in der vorherigen technischen Architektur erstellt, Redis wird jedoch nur für die Sitzungsverwaltung verwendet, der Hintergrundobjektcache wird jedoch nicht verwendet
1 Unterschied zwischen Redis und Ehcache:
Nach einem kurzen Verständnis bin ich persönlich der Meinung, dass Redis aus Sicht der Bereitstellung besser für die verteilte Bereitstellung geeignet ist, während Ehcache auf jedem Computer ein Stück öffnet Speicher auf dem Anwendungsserver für das Caching. Redis muss kein Caching berücksichtigen. Es kann auf einem separaten Server (oder in einem bestimmten Anwendungsserver) bereitgestellt werden (spring mvc+maven+mybaits+redis), hier reden wir nur über Spring Integrated Redis:
a. Konfigurieren Sie die pom.xml-Datei (wenn es sich nicht um ein Maven-Management-Projekt handelt, laden Sie 2 Jars herunter.) it)
<!-- redis cache related.....start --> <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.7.3</version> </dependency> <!-- redis cache related.....end -->
Fügen Sie zuerst den Cache in
xmlns:cache="http://www.springframework.org/schema/cache" xsi:schemaLocation="http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-4.2.xsd"
<!-- ******************** redis缓存 **********************--> <!-- 注解一定要配置,不然不起作用 --> <cache:annotation-driven /> <!-- jedis 配置 --> <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxIdle" value="${redis.maxIdle}" /> <!--<property name="maxWaitMillis" value="${redis.maxWait}" />--> <property name="testOnBorrow" value="${redis.testOnBorrow}" /> </bean> <!-- redis服务器中心 --> <bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <property name="poolConfig" ref="poolConfig" /> <property name="port" value="${redis.port}" /> <property name="hostName" value="${redis.hostname}" /> <!-- <property name="password" value="${redis.password}" /> --> <property name="timeout" value="${redis.timeout}"></property> </bean> <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"> <property name="connectionFactory" ref="connectionFactory" /> <property name="keySerializer"> <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" /> </property> <property name="valueSerializer"> <bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" /> </property> </bean> <!-- 配置缓存 --> <bean id="cacheManager" class="org.springframework.data.redis.cache.RedisCacheManager"> <constructor-arg ref="redisTemplate" /> </bean> <!-- ******************** redis缓存 **********************-->
#redis config #redis.hostname=192.168.242.131 redis.hostname=localhost redis.port=6379 redis.timeout=2000 redis.usePool=true redis.default.db=0 #\u6700\u5927\u5206\u914D\u7684\u5BF9\u8C61\u6570 redis.maxTotal=600 #\u6700\u5927\u80FD\u591F\u4FDD\u6301idel\u72B6\u6001\u7684\u5BF9\u8C61\u6570 redis.maxIdle=300 #\u591A\u957F\u65F6\u95F4\u68C0\u67E5\u4E00\u6B21\u8FDE\u63A5\u6C60\u4E2D\u7A7A\u95F2\u7684\u8FDE\u63A5 redis.timeBetweenEvictionRunsMillis=30000 #\u7A7A\u95F2\u8FDE\u63A5\u591A\u957F\u65F6\u95F4\u540E\u4F1A\u88AB\u6536\u56DE redis.minEvictableIdleTimeMillis=30000 #\u5F53\u8C03\u7528borrow Object\u65B9\u6CD5\u65F6\uFF0C\u662F\u5426\u8FDB\u884C\u6709\u6548\u6027\u68C0\u67E5 redis.testOnBorrow=true ########reids\u7F16\u7801\u683C\u5F0F redis.encode=utf-8 ######\u7F13\u5B58\u8FC7\u671F\u65F6\u95F4 \u79D2 1000*60*60*24*7 \u4E03\u5929 redis.expire=604800000 ####\u662F\u5426\u5F00\u542FRedis\u670D\u52A1\u5E94\u7528 redis.unlock=false
@Service("testService") public class TestServiceImpl implements ITestService { @Resource private ITestDao testDao; @Cacheable(value="testId",key="'id_'+#id") public Test getTestById(int id) { return this.testDao.getObjById(id); } @CacheEvict(value="testId",key="'id_'+#id") public void removeTestById(int id) { } }
Hinweis: Einige Freunde werden fragen, Fehlergarantie beim Start Zugriff, das liegt daran, dass der lokale Redis-Dienst nicht gestartet wurde. Laden Sie die Win32/Win64-Version herunter, starten Sie sie und greifen Sie erneut darauf zu. Es wird kein Fehler gemeldet
Das obige ist der detaillierte Inhalt vonTeilen Sie ein Anwendungsbeispiel für die Konfiguration des Spring 4.0-Annotations-Cache+Redis-Cache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!