SpringBoot + Redis 쉽게 만드는 데모
6490 단어 SpringBootRedis자바
소개
springboot는 java 개발자에게 가장 사용하기 쉬운 프레임 워크라고 생각합니다.
redis는 인기있는 NOSQL DB 중 하나입니다.
이번에는 springboot와 redis를 사용하여 CURD 데모를 만듭니다.
사전 준비
1. 환경:
SpringBoot
Redis
Gradle
2. 프로젝트 구축
Spring Initializr 를 요구해 자동적으로 프로젝트 병아리를 생성됩니다.
다음과 같이 설정하십시오.
① Gradle Project
② Java
③③ Spring Boot 2.1.5
했던 일
1. 우선 프로젝트용 라이브러리를 도입하기 위해 다음과 같은 설정을 한다.
① ① build.gradle 파일을 열고 다음과 같이 key-value 형태로 설정합니다.
dependencies {
implementation('org.springframework.boot:spring-boot-starter-data-redis')
implementation('org.springframework.boot:spring-boot-starter-web')
testImplementation('org.springframework.boot:spring-boot-starter-test')
}
2. redis 서비스 배포
application.properties를 열고 다음 내용을 추가합니다. (비밀번호 없이도 좋습니다.)
server.port=8088
spring.redis.database=0
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.password=
spring.redis.timeout=200
3. 구현한 소스입니다.
우선 RedisConfig.java를 만들고,
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory factory){
RedisTemplate<String,Object> template = new RedisTemplate <>();
template.setConnectionFactory(factory);
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
ObjectMapper om = new ObjectMapper();
om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
jackson2JsonRedisSerializer.setObjectMapper(om);
StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
// key采用String的序列化方式
template.setKeySerializer(stringRedisSerializer);
// hash的key也采用String的序列化方式
template.setHashKeySerializer(stringRedisSerializer);
// value序列化方式采用jackson
template.setValueSerializer(jackson2JsonRedisSerializer);
// hash的value序列化方式采用jackson
template.setHashValueSerializer(jackson2JsonRedisSerializer);
template.afterPropertiesSet();
return template;
}
}
나중에 RedisService.java를 만들어 다양한 기능을 구현합니다.
@Service
public class RedisService {
/**
* 注入redisTemplate bean
*/
@Autowired
private RedisTemplate<String,Object> redisTemplate;
/**
* 删除缓存
*
* @param key 可以传一个值 或多个
*/
@SuppressWarnings("unchecked")
public void del(String... key) {
if (key != null && key.length > 0) {
if (key.length == 1) {
redisTemplate.delete(key[0]);
} else {
redisTemplate.delete(CollectionUtils.arrayToList(key));
}
}
}
/**
* 普通缓存获取
*
* @param key 键
* @return 值
*/
public Object get(String key) {
return key == null ? null : redisTemplate.opsForValue().get(key);
}
/**
* 普通缓存放入
*
* @param key 键
* @param value 值
* @return true成功 false失败
*/
public boolean set(String key, Object value) {
try {
redisTemplate.opsForValue().set(key, value);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
}
마지막으로 기능을 테스트하기 위해 컨트롤러를 만들어 보았습니다.
@RestController
@RequestMapping(value = "/redis")
public class RedisController {
/**
* 注入redisTemplate bean
*/
@Autowired
private RedisService redisService;
/**
* 保存(更新)数据
* @param key
* @param value
* @return
*/
@RequestMapping(value="/add",method=RequestMethod.GET)
public String add(String key,String value) {
redisService.set(key, value);
return "add successfully";
}
/**
* 删除指定数据
* @param key
* @return
*/
@GetMapping(value="/delete")
public String delete(String key) {
redisService.del(key);
return "delete successfully";
}
/**
* 读取指定数据
* @param key
* @return
*/
@GetMapping(value="/get")
public String get(String key) {
return redisService.get(key)==null ? "data don't exist!" : redisService.get(key).toString();
}
}
테스트
우선 Redis 서버를 redis-server redis.windows.conf로 시작합니다. 다음과 같습니다.
그런 다음 프로젝트를 시작합니다.
①①저장 기능을 테스트
테스트 테이터: {city:tokyo}
URL : localhost:8088/redis/add?key=city&value=tokyo
브라우저에서 테스트 URL을 입력하고 액세스하면 성공적으로 저장할 수 있습니다.
② 취득 기능을 테스트
URL : localhost:8088/redis/get?key=city
자, 먼저 저장된 데이터를 가져옵니다.
③③삭제 기능을 테스트
URL : localhost:8088/redis/delete?key=city
저장된 데이터를 삭제합니다.
테스트는 여기까지입니다.
마지막으로
이 기사에 관심이 있다면 꼭 여기에 소스를 다운로드하십시오.
원래 기사 사이트 : htp //160.16.146.245/우/hy만/bぉgs/11
이상
Reference
이 문제에 관하여(SpringBoot + Redis 쉽게 만드는 데모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Hyman1993/items/4ae9bc500f5b5cdfa095텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)