Zajmuję się tworzeniem aplikacji internetowych przy użyciu Spring MVC i używam abstrakcji pamięci podręcznej sprężyny z Redis do buforowania zapytań do bazy danych. Ale nie jestem w stanie utworzyć wielu magazynów pamięci podręcznej za pomocą @Cacheable
.Czy jest możliwe utworzenie wielu magazynów pamięci podręcznej przy użyciu abstrakcji pamięci podręcznej Spring z redis?
@Cacheable("acache")
public String atest(int i) {
return "a";
}
@Cacheable("bcache")
public String btest(int i) {
return "b";
}
...
...
String s = atest(1);
String r = btest(1);
Korzystanie Redis, zarówno s
i r
mają taką samą wartość "a
". Mimo że przechowuję te dwie metody w pamięci podręcznej, wydaje się, że nie ma to żadnego wpływu.
Ale to działa dobrze, gdy używam Springa SimpleCacheManager
.
konfiguracja Wiosna fasola dla Redis:
<cache:annotation-driven />
<bean id="jedisConnectionFactory"
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
p:hostName="${redis.host-name}"
p:port="${redis.port}"
p:usePool="true"/>
<bean id="redisTemplate"
class="org.springframework.data.redis.core.RedisTemplate"
p:connectionFactory-ref="jedisConnectionFactory"/>
<bean id="cacheManager"
class="org.springframework.data.redis.cache.RedisCacheManager"
c:template-ref="redisTemplate">
</bean>
Czy możesz pokazać swoją konfigurację fasoli Spring? – ragnor
Dodano konfigurację fasoli. –