Heim  >  Artikel  >  Java  >  Teilen Sie ein Anwendungsbeispiel für die Konfiguration des Spring 4.0-Annotations-Cache+Redis-Cache

Teilen Sie ein Anwendungsbeispiel für die Konfiguration des Spring 4.0-Annotations-Cache+Redis-Cache

Y2J
Y2JOriginal
2017-05-02 14:08:281938Durchsuche

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)

b. Konfigurieren Sie die Datei applicationContext.xml
<!-- 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 3c9fdce8078791299ca92e41bddc2b8f hinzu. Laden Sie ihn in Spring Redis Konfiguration

c. Konfigurieren Sie die Ressourcendatei application.properties
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"

3. Ergebnis:
<!-- ******************** 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缓存  **********************-->

Wenn Sie die Service-Methode zum ersten Mal eingeben
#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

Wenn Sie die Service-Methode zum zweiten Mal nicht eingeben, erhalten Sie auch den Wert
@Service("testService") 
public class TestServiceImpl implements ITestService { 
   
  @Resource 
  private ITestDao testDao; 
 
  @Cacheable(value="testId",key="&#39;id_&#39;+#id") 
  public Test getTestById(int id) { 
    return this.testDao.getObjById(id); 
  } 
   
  @CacheEvict(value="testId",key="&#39;id_&#39;+#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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn