SSM 1 단계 구덩이:Spring+Redis-Christer 배치 Redis 군집@Cacheable 주석
13657 단어 SSM 의 한 걸음 한 걸음
제 가 사용 하 는 버 전과 같 으 면 여러 가지 오류 가 발생 할 수 있 습 니 다.
spring-*:4.2.8 redis-data-redis:1.8.1 redis.clients:2.9.0 commons-pool2:2.4.3
불 러 온 프로필(부분)
redis.clients
jedis
2.9.0
org.springframework.data
spring-data-redis
1.8.1.RELEASE
org.apache.commons
commons-pool2
2.4.3
redis-spring.xml 는 웹.xml 에 불 러 와 야 합 니 다.
classpath:redis.properties
redis.properties
##########################
## redis
##########################
# redis IP
redis.master.ip=127.0.0.1
# redis
redis.master.port=9001
#
#redis.pass=123456
##########################
## redis
##########################
#
redis.pool.maxIdle=200
#
redis.pool.maxTotal=1024
#
redis.pool.maxWaitMillis=1000
#
redis.pool.testOnBorrow=true
redis.pool.testOnReturn=true
redis-spring.xml 에 불 러 온 인터페이스 com.song.redis.RedisCache 는 RedisTemple 재 작성 방법 을 사용 합 니 다.
package com.song.redis;
/**
* Copyright: Copyright (c) 2019 LanRu-Caifu
*
* @ClassName: RedisCache.java
* @Description:
*
* @version: v1.0.0
* @author: dongsong
* @date: 2019 7 12 6:56:33
*
* Modification History:
* Date Author Version Description
*---------------------------------------------------------*
* 2019 7 12 dongsong v1.0.0
*/
import java.io.Serializable;
import org.apache.commons.lang3.SerializationUtils;
import org.springframework.cache.Cache;
import org.springframework.cache.support.SimpleValueWrapper;
import org.springframework.dao.DataAccessException;
import org.springframework.data.redis.connection.RedisConnection;
import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.core.RedisTemplate;
public class RedisCache implements Cache {
private RedisTemplate redisTemplate;
private String name;
@Override
public void clear() {
System.out.println("------- ------");
redisTemplate.execute(new RedisCallback() {
@Override
public String doInRedis(RedisConnection connection) throws DataAccessException {
connection.flushDb();
return "ok";
}
});
}
@Override
public void evict(Object key) {
System.out.println("------- ------");
final String keyf=key.toString();
redisTemplate.execute(new RedisCallback() {
@Override
public Long doInRedis(RedisConnection connection) throws DataAccessException {
return connection.del(keyf.getBytes());
}
});
}
@Override
public ValueWrapper get(Object key) {
System.out.println("------ -------"+key.toString());
final String keyf = key.toString();
Object object = null;
object = redisTemplate.execute(new RedisCallback
사용 방법:
데 이 터 를 redis 에 추가 하 는 방법 에@Cacheable(CacheNames="content",key="**")을 더 해 야 합 니 다.사용 하 는 key 는 EL/spEL 규칙 에 부합 해 야 합 니 다.다른 cacheNames 의 값 은 redis-spring.xml 에 설정 되 어 있 습 니 다.
예시
@Override
@Cacheable(cacheNames="content",key="'adminlog'")
public List selectall() {
// TODO Auto-generated method stub
return adminlogmapper.selectlist();
}