マルチセッション対応 - Redis サーバのインストール
最終更新日: 2021年3月8日
R8 | R9
Linux OS での redis のインストールと実行を次の手順で行うことができます。
インストール後、redis の内容を消去します。
Wagby アプリケーションを再起動するタイミングで、redis の内容は自動的に消去されます。
何らかの理由で redis の内容を消去したい場合は、次のコマンドを入力してください。
ネームスペースによって「(1つのRedisサーバと紐づく、複数のWagbyアプリケーションの)どれか」を指定した削除を行うことができます。
次のコマンドで、ネームスペースに対応するキーを取得することができます。
次のような出力結果を得ることができます。
上で得られたキーを一つずつ指定して、Redisサーバから削除します。例を示します。
1回のコマンド実行で、複数のキーを指定することもできます。
しかし、キーにワイルドカードを使うことはできません。次のように * を指定しても削除されません。
redis-cli コマンドでワイルドカード指定が使えないという制約を、(OSが提供する)シェルスクリプトとの併用で解消する方法を紹介します。
Linux OS の場合、次のようにxargsを使って1回で消す方法があります。
Windows OS の場合、PowerShell を使います。
Linux OS へのインストール
$ yum search redis
....
redis.x86_64 : A persistent key-value database
$ sudo yum install redis
...
(1/2): jemalloc-3.6.0-1.el6.x86_64.rpm | 100 kB 00:00
(2/2): redis-3.2.11-1.el6.x86_64.rpm | 521 kB 00:00
...
$ chkconfig --list redis
redis 0:off 1:off 2:off 3:off 4:off 5:off 6:off
$ sudo chkconfig redis on
$ chkconfig --list redis
redis 0:off 1:off 2:on 3:on 4:on 5:on 6:off
$ sudo service redis start
redis-server を起動中: [ OK ]
$ redis-cli flushall
OK
データベースをクリアする (1) 自動消去
データベースをクリアする (2) 手動消去
Spring Session ネームスペース未指定の場合
redis-cli flushall
Spring Session ネームスペースを指定していた場合
(1) ネームスペースに対応したキー一覧を取得する
redis-cli keys "spring:session:wagbyapp1:*"
1) "spring:session:wagbyapp1:sessions:56bd67cd-080c-4445-b9a1-8210352d17ca"
2) "spring:session:wagbyapp1:expirations:1554370260000"
3) "spring:session:wagbyapp1:sessions:expires:56bd67cd-080c-4445-b9a1-8210352d17ca"
4) "spring:session:wagbyapp1:index:org.springframework.session.FindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME:admin"
5) "spring:session:wagbyapp1:expirations:1554369120000"
6) "spring:session:wagbyapp1:sessions:a5c73b3f-b564-4515-9df9-0ae62a2ed89c"
(2) キーを指定して削除を行う
redis-cli del "spring:session:wagbyapp1:index:org.springframework.session.FindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME:admin"
redis-cli del "spring:session:wagbyapp1:expirations:1554370260000" "spring:session:wagbyapp1:sessions:expires:56bd67cd-080c-4445-b9a1-8210352d17ca" "spring:session:wagbyapp1:index:org.springframework.session.FindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME:admin" "spring:session:wagbyapp1:expirations:1554369120000" "spring:session:wagbyapp1:sessions:a5c73b3f-b564-4515-9df9-0ae62a2ed89c"
redis-cli del "spring:session:wagbyapp1:*"
シェルスクリプトとの併用による、複数キーの一括削除
redis-cli keys "spring:session:wagbyapp1:*" | xargs redis-cli del
redis-cli keys "spring:session:wagbyapp1:*" | % { redis-cli del $_ }