2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Redis導入調査 - どのバージョンにする?

Last updated at Posted at 2025-03-24

目的

.NET Core MVCアプリケーションのセッション管理をRedisに委譲し、複数サーバでのセッション共有を可能にしたい。
オンプレミス環境とサーバレス環境の両方で動作するセッション管理の仕組みを構築する。

課題

Redis はバージョン7.4以降、OSS(オープンソースソフトウェア)ではなくなった。
7.4以降を「Redis Community Edition」と名称変更。
一般ユーザは引き続き無償利用可能だが、AWSなどクラウドベンダーでは利用できなくなった。

AWSやGCPでは、
Redisをフォークしたインメモリデータベース「Valkey」が使われ始めている。:sunny:
(GCPではまだプレビュー版を公開している状況。)

AWSにはどんなサービスがあるの

・Amazon MemoryDB
データは複数のアベイラビリティーゾーンにまたがって永続的に保存されます。
ゲームのリーダーボードなど、高速な読み書きとデータの永続性が求められるユースケースに適している。

・Amazon ElastiCache
主にキャッシュ用途に設計されており、パフォーマンスを重視しています。
セッションストア、リアルタイム分析など、高速なデータアクセスが求められるユースケースに適している。

今回は、データが揮発してもよい用途なので、ElastiCacheの方を採択。

AWS 費用感

▼Amazon ElastiCache
TOKYOリージョン(2025-03-24)

・Valkey
保存されたデータ USD 0.101 / GB-時
ElastiCache Processing Units (ECPU) USD 0.0027 / 100 万 ECPU

・Memcached
保存されたデータ USD 0.125 / GB-時
ElastiCache Processing Units (ECPU) USD 0.0034 / 100 万 ECPU

・Redis OSS
保存されたデータ USD 0.151 / GB-hour
ElastiCache Processing Units (ECPUs) USD 0.0041 / million ECPUs

▼Amazon MemoryDB

・Valkey
db.r7g.large USD 0.2597

・Redis OSS
db.r7g.large USD 0.371

性能・機能

・Valkey
Redisとの互換性を維持。
Valkey7はRedis7.2.4をフォークしたもの。
Valkey8はRedis7.2との互換性を保ちつつ、性能向上や機能強化が盛り込まれている。

・Memcached
マルチスレッドで動作。CPUのコア数を上げれば性能向上。
シンプルなキー/バリュー型のデータ構造のみをサポート。

・Redis OSS
シングルスレッドで動作。
多機能・高機能。

GCPにはどんなサービスがあるの

GCP費用感

TOKYOリージョン(2025-03-24)

・Memorystore for Valkey
shared-core-nano 1.4 GB $0.0408
※まだプレビュー版しか提供していない。

・Memorystore for Memcached
vCPU $0.064($ per vCPU per hr)
Node ≤ 4 GB $0.0056($ per GB per hr)

・Memorystore for Redis
Basic M1 (1 to 4 GB) $0.065

性能・機能

・Memorystore for Valkey
Redis 7.2と完全互換(既存のRedisクライアントで利用可能)

・Memcached
マルチスレッドで動作。CPUのコア数を上げれば性能向上。
シンプルなキー/バリュー型のデータ構造のみをサポート。

・Redis OSS
シングルスレッドで動作。
多機能・高機能。

所感

AWSの方がValkey版のリリースが早く、費用も安い様子。
AWS、GCPともに、Redis 7.2と互換性が高い。
なので、オンプレ版もRedis 7.2を使うことにする。

後日談

Redis 7.2に合わせてプログラムを作成し、
Valkey 7.2.8、および8.0.2で動作確認したところプログラムや設定の変更は必要なく動作した。
AWSとGCPはValkey 7.2、および8.0に対応しているので、性能を意識した場合、Valkey 8.0 を採用するとよいだろう。

参考

・公式ドキュメント[[Valkey との主なエンジンバージョン動作と互換性の違い]]
https://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/VersionManagementConsiderations-valkey.html

-Valkey 7.2 には Redis からバージョン 7.2.4 OSSまでのすべての変更が含まれています。
-Valkey 7.2 と Redis 7.1 (または 7.0) OSS の間で、重大な動作変更が発生する可能性があります。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?