SpringBoot에서 Redis를 사용해보기

10962 단어 Redisspring-bootnosql

소개


  • 이번은 최근 잘 듣는 NoSQL라고 하는 녀석을 사용해 본다
  • NoSQL 중 Redis 사용
  • 우선 움직이는 곳까지를 목표로 한다
  • nosql과 RDB의 차이점을 모르는 사람은 다른 사람의 기사를 참조하십시오 (자세한 내용은 언급하지 않음).

    대상


  • 어디까지나 Java(SpringBoot) 유저&&NoSQL 초보자
  • NoSQL에 관심있는 사람

  • Redis란?


  • NoSQL의 일종
  • 오픈 소스 녀석 (그 밖에도 유명 어디라면, Cassandra나 MongoDB라든지. 사용한 적은 없습니다)
  • KVS 데이타베이스 (Map 같은 이미지? 다르면 미안해)

  • NoSQL에 대해서는, 이쪽의 기사가 대단히 잘 정리되어 있었으므로, 참고로 해 주세요.
    NoSQL에 대해 공부한다.

    조속히 놀아보기



    준비한 것


  • Mac 터미널
  • IntelliJ(SpringBoot+Gradle)

  • redis 측면



    터미널에서 brew install로 redis 설치


    % brew install redis
    

    redis-server로 확인


    % redis-server
    

    이런 녀석이 나오면 OK입니다.

    Ctrl+C로 빠져 갑시다.

    redis-cli하기




    화가 나서 ...

    다음 명령 실행


    % ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents
    
    % launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
    

    다시 redis-cli




    넣은 것 같습니다. 놀 수있었습니다!

    Spring측


  • 적절한 응용 프로그램을 준비하십시오

  • build.gradle
    compile ('org.springframework.boot:spring-boot-starter-redis:1.4.7.RELEASE')
    

    위의 설정을 추가하면 RedisTemplate을 사용할 수 있습니다.
    이 녀석을 사용하면 Map을 사용하는 감각으로 Redis에 Key와 Value를 등록할 수 있습니다.

    application.yml
    spring.redis:
      host: localhost
      port: 6379
      password: null
      database: 0
    

    이런 식으로 yml에 써 두면 이미 redis를 사용할 수 있습니다. 디폴트의 ​​설정치이므로 쓸 필요가 없으면 미안해.
    database는 디폴트로 0부터 사용해 가게 되어 있는 것 같습니다.

    움직여 보자



    그런 이렇게, 이미 Redis에 등록할 수 있게 되어 있습니다만, 나머지는 조금 샘플 코드만 올려 둡니다.

    RedisSampleData
    
    
    @Data
    @Getter
    @Setter
    class RedisSampleData {
    
        private String string;
    
        private List<String> list;
    
        private Map<String, String> map;
    
    }
    

    RedisSampleController
    
    
    @RestController
    @RequestMapping(value = "/SampleRedis")
    public class RedisSampleController {
    
        @Autowired
        private StringRedisTemplate redisTemplate;
    
        @PostMapping
        public void post(@RequestBody RedisSampleData redisSampleData) {
            redisTemplate.delete("redis-tutorial:string");
            redisTemplate.opsForValue()
                    .set("redis-tutorial:string", redisSampleData.getString());
            redisTemplate.delete("redis-tutorial:list");
            redisTemplate.opsForList()
                    .rightPushAll("redis-tutorial:list",
                            redisSampleData.getList().toArray(new String[0]));
            redisTemplate.delete("redis-tutorial:map");
            redisTemplate.opsForHash()
                    .putAll("redis-tutorial:map", redisSampleData.getMap());
        }
    
        @GetMapping
        public RedisSampleData get() {
            RedisSampleData redisSampleData = new RedisSampleData();
            redisSampleData.setString(
                    redisTemplate.opsForValue()
                            .get("redis-tutorial:string")
            );
            redisSampleData.setList(
                    redisTemplate.opsForList()
                            .range("redis-tutorial:list", 0, -1)
            );
            redisSampleData.setMap(
                    redisTemplate.<String, String>opsForHash()
                            .entries("redis-tutorial:map")
            );
            return redisSampleData;
        }
    }
    

    request.json
    {
      "string": "太郎",
      "list": [
        "二郎",
        "三郎"
      ],
      "map": {
        "田中": "太郎",
        "山田": "二郎"
      }
    }
    

    두드려 보자・・・
    % curl -X POST -H "Content-Type: application/json" http://localhost:8080/SampleRedis -d @request.json
    
    % curl "localhost:8080/SampleRedis"
    



    잡감


  • SpringBoot 덕분에 꽤 쉽게 시작할 수있었습니다.
  • 제대로 사용할 수 있게 되기에는 좀 더 시간이 걸릴 것 같아

  • 참조원



    Spring Data Redis

    좋은 웹페이지 즐겨찾기