Springboot統合redis+token認証ログイン


前に書く
  • redisは、メモリベースでも永続的なセッションベースでもよいログ型、key-valueデータベースである.パフォーマンスが高いため、ストレージデータ型が豊富であるなどの利点がデータキャッシュとしてよく用いられる.
  • 本文はspringboot 2を紹介した.2.0 redisを統合するための一般的な手順.本文を読むと、5分ぐらいかかります.
  • 統合redis
    一.インストールredis
  • オペレーティングシステムに基づいてredisバージョンを選択してredisをダウンロードし、インストールします.クリックして
  • をダウンロードします.
  • ダウンロードファイルの名前をredis->ファイルを開く->cmdを現在のフォルダの下->redis-serverに変更します.exe redis.windows.confはredis
  • を起動することができる
  • はredisに環境変数を設定することができます.これはよく知られています.

  • 注意:ファイアウォールはredisのために開くべきです!
    二.redis依存の導入
    pom.xmlファイルの下でredis依存性を導入
    
            
                org.springframework.boot
                spring-boot-starter-data-redis
                
                
                    
                        redis.clients
                        jedis
                    
                    
                        io.lettuce
                        lettuce-core
                    
                
            
            
            
                redis.clients
                jedis
            
            
            
            
            
                org.apache.commons
                commons-pool2
                2.5.0
            

    3.グローバル構成シングルサーバredis
    propertiesファイルに、次の基本構成を追加します.
    spring.redis.port=6379
    spring.redis.host=127.0.0.1
    #  redis       
    #spring.redis.password=123
    spring.redis.jedis.pool.max-active=100
    spring.redis.jedis.pool.max-idle=5
    spring.redis.jedis.pool.max-wait=60000
    spring.redis.database=0
    spring.redis.timeout=10000
    #   redis   session   type   redis
    spring.session.store-type=redis
    spring.session.timeout=10
    server.servlet.session.timeout=10

    4.RedisServerを新規作成します.java.redisの基本操作のクラスを作成する
    package com.dbc.usermanager.service;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.data.redis.core.StringRedisTemplate;
    import org.springframework.data.redis.core.ValueOperations;
    import org.springframework.stereotype.Service;
    
    import java.util.concurrent.TimeUnit;
    
    @Service
    public class RedisService {
    
        @Autowired
        protected StringRedisTemplate redisTemplate;
    
        /**
         *   redis  (   expire    )
         * @param key
         * @param value
         * @return
         */
        public boolean set(final String key, String value){
            boolean result = false;
            try {
                ValueOperations operations = redisTemplate.opsForValue();
                operations.set(key, value);
                result = true;
            } catch (Exception e) {
                System.out.println("  redis    !     :" + e.getMessage());
            }
            return result;
        }
    
        /**
         *   redis  (  expire    )
         * @param key
         * @param value
         * @param expire
         * @return
         */
        public boolean set(final String key, String value, Long expire){
            boolean result = false;
            try {
                ValueOperations operations = redisTemplate.opsForValue();
                operations.set(key, value);
                redisTemplate.expire(key, expire, TimeUnit.SECONDS);
                result = true;
            } catch (Exception e) {
                System.out.println("  redis  (  expire    )  !     :" + e.getMessage());
            }
            return result;
        }
    
    
        /**
         *   redis  
         * @param key
         * @return
         */
        public Object get(final String key){
            Object result = null;
            try {
                ValueOperations operations = redisTemplate.opsForValue();
                result = operations.get(key);
            } catch (Exception e) {
                System.out.println("  redis    !     :" + e.getMessage());
            }
            return result;
        }
    
        /**
         *   redis         key
         * @param key
         * @return
         */
        public boolean exists(final String key){
            boolean result = false;
            try {
                result = redisTemplate.hasKey(key);
            } catch (Exception e) {
                System.out.println("  redis         key  !     :" + e.getMessage());
            }
            return result;
        }
    
        /**
         * redis  key     value
         * @param key
         * @return
         */
        public boolean remove(final String key){
            boolean result = false;
            try {
                if(exists(key)){
                    redisTemplate.delete(key);
                }
                result = true;
            } catch (Exception e) {
                System.out.println("redis  key     value  !     :" + e.getMessage());
            }
            return result;
        }
    
        /**
         * redis  keys       value
         * @param keys
         * @return
         */
        public void remove(final String... keys){
            for(String key : keys){
                remove(key);
            }
        }
    }