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

이상
 

 

좋은 웹페이지 즐겨찾기