Redisのは、最適化モジュールを使用してログイン

システム速度を向上させる、データベースの圧力を減らすために、Redisのは、プロジェクトで導入されました。

着陸検証コードの前に情報がセッションに格納されます。各要求の前に、インターセプタは、登録情報を確認するデータベースから、各ユーザの情報にアクセスしてください。これらの機能のどちらも、Redisのことで改善します。

まずRedisの、Redisのと輸入依存度、構成されたのRedisをインストールします。

このコードでは、各要求はRedisの検証コードに保存された主キーの値を持つために確認コードを取得する必要があり、同じクライアントのために、私たちは同じキーをしたい、そのため私たちは、UUIDはクッキーに保存されて使用し、コードは次のとおりです。
(METHOD =パス= "/ kaptchaを" @RequestMapping RequestMethod.GET)を
     公共 ボイド getKaptcha(HttpServletResponseの応答/ * 、HttpSessionのセッション* / ){
         // コードを生成する 
        文字列のテキスト= kaptchaProducer.createText()を、
        バッファ画像イメージ = kaptchaProducer。 createImage(テキスト); 

        // コードは、セッションに保存されます
         // にsession.setAttribute( "kaptcha"、テキスト); 

        //は、コードの所有権を確認する 
        文字列kaptchaOwner = CommunityUtil.generateUUIDを(); 
        クッキークッキー = 新しい新しいクッキー( "kaptchaOwner"、kaptchaOwner)。
        cookie.setMaxAge( 60 ); 
        cookie.setPath(のcontextPath); 
        response.addCookie(クッキー); 
        // のRedisに格納されたコード 
        列redisKey = RedisKeyUtil.getKaptchaKey(kaptchaOwner)
        。redisTemplate.opsForValue()SET(redisKey、テキスト、 60 、TimeUnit.SECONDS); 

        // ブラウザに出力する投影画像 
        response.setContentType( "画像/ PNG" );
         試み{ 
            OutputStreamのOS = response.getOutputStream(); 
            ImageIO.write(画像、 "PNG" 、OS ); 
        } キャッチ(IOExceptionをE){
            logger.error( "失敗応答コード:" + e.getMessage())。
        } 
    }

ユーザー情報を照会するとき、我々は唯一の到達範囲内のRedisは、データベースから取得した場合、ユーザーのクエリメソッドのIDで、ユーザがサービスを書き換える必要があり、利用者は、中のRedisにクレジットJSONにオブジェクト。ここでは、ユーザーが削除キャッシュ操作を追加するために変更したときにデータベースキャッシュとの整合性を維持するためには、それを注意してください。コードは以下の通りです

パブリックユーザーfindUserById(int型のID){
 //         userMapper.selectById(ID)を返します。
        ユーザのユーザ= getCache(ID)。
        もし(ユーザ== NULL ){ 
            ユーザー = initCache(ID)。
        } 
        戻りユーザ、
    } 

プライベートユーザinitCache(INT USERID){ 
        ユーザーユーザー = userMapper.selectById(USERID)。
        ストリングredisKey = RedisKeyUtil.getUserKey(USERID)。
        redisTemplate.opsForValue()セット(redisKey、ユーザー、。 3600 、TimeUnit.SECONDS)。
        リターンユーザー; 
    }

 

 

おすすめ

転載: www.cnblogs.com/zhangbochao/p/12444842.html