はじめに
2024年、12/10 リリース(ver.1.4.11.0)にて、当社でセッションをKVS(Key Value Store)に保存できる機能を実装いたしました。簡単に機能のご紹介をさせていただこうと思います。
KVSとは?
一つのキーと値のペアでデータを格納するシンプルなNoSQLデータベースです。
RDBとは違いキーでのアクセスしかできず、スキーマが不要です。またデータモデルが単純であるためデータを高速に読み書きできます。
代表的なキャッシュシステムにはRedis、Memcachedがあります。
何のために追加したか
プリザンターは、セッションで各ページの表示情報(フィルタなど)を保存しています。これをページ表示のたびにロードするため、時間がかかっていました。
これらの処理を高速なKVSに移行することで、ページの表示を高速化することが可能となります。
実装について
RedisクライアントのひとつであるStackExchange.Redisを使用し、KVSを有効可した際はアプリ起動時にKVSを読み込むように実装いたしました。
使い方と各種パラメータ
有効化手順
Session.jsonのUseKeyValueStoreをTrueに変更
{
"RetentionPeriod": 1440,
"UseKeyValueStore": true
}
Kvs.jsonのConnectionStringForSessionを設定
{
"ConnectionStringForSession": "<キャッシュのホスト名>:<キャッシュのポート番号>,password=<キャッシュのパスワード>,ssl=True,abortConnect=False"
}
変更できるオプション
上記パラメータのRetentionPeriodを変更すると、セッションデータの保持期間を分単位で指定できます。デフォルトは1440分=24時間です。
まとめ
セッションをKVSに保存できるようになり、高速なページの表示が可能となりました。
KVS自体の契約や設定が必要になる可能性はありますが、ページが多く、表示が重くなってしまっている方はぜひ試していただきたいと思います。