documentation.suse.com / Valkeyの概要
SUSE Linux Enterprise Server 16.0

Valkeyの概要

発行日: 04/11/2025
概要

Valkeyは、データベース、キャッシュ、メッセージブローカ、ストリーミングエンジンとして優れた機能を備えたオープンソースのインメモリデータ構造ストアです。Valkeyは、アプリケーションの高速化と、強化されたマルチスレッドと信頼性による多様なデータニーズの効率的な管理に不可欠な、高性能でスケーラブルかつ多用途なインメモリデータストアを提供します。

目的

Valkeyのインストールと設定方法を習得します。

所要時間

理解に40分ほどを要します。

目標

SUSE Linux Enterprise Server for SAP applicationsへのValkeyの設定、またはRedisからValkeyへの移行。

1 Valkeyについて

ValkeyはRedisバージョン7.2.4のフォークです。Valkeyは、BSD (Berkeley Software Distribution)ライセンスに基づいてライセンスされたオープンソースのインメモリデータ構造ストアであり、さまざまなアプリケーション用の多用途プラットフォームとして機能します。高速で柔軟なデータ ストレージを提供するデータベースとして、アプリケーションパフォーマンスを大幅に向上させキャッシュとして、非同期通信を可能にするメッセージブローカとして、さらにリアルタイムデータ処理のためのストリーミングエンジンとしても優れています。ValkeyはRedis OSSの基盤の上に構築され、パフォーマンスを向上させるマルチスレッドを組み込んでおり、速度、スケーラビリティ、多様なデータ処理機能を要求するアプリケーション向けに堅牢なソリューションを提供します。

Valkeyには、次のような多くの利点があります。

  • メモリに保存されたデータへの高速で低遅延なアクセスを提供し、キャッシュ、リアルタイム分析、メッセージブローカリングに最適です。

  • 文字列、ハッシュ、リスト、セット、ソートされたセット、ストリーム、地理空間インデックスなどの強力で多用途なデータ構造をサポートします。

  • 再起動後のデータの回復のために、RDB (Redis Database Backup)スナップショットとAOF(追加専用ファイル)の永続性を提供します。

  • 複数のノードにデータを分割することにより、水平スケーリングを可能にします。

  • Redis 7.2との互換性が維持されているため、既存のクライアントライブラリやアプリケーションロジックを変更せずに簡単に移行できます。

  • イベント駆動型またはメッセージングベースのシステムを構築するための組み込みのパブリッシュ/サブスクライブ機能を提供します。

Valkeyの詳細については、https://valkey.io/docs/を参照してください。

2 Valkeyの管理

Valkeyをインストールし、コマンドラインツールを使用し、RedisからValkeyに移行する方法を習得します。

2.1 Valkeyサービスファイルの設定

Valkeyは、データベース、キャッシュ、メッセージブローカ、ストリーミングエンジンとして機能するオープンソースのインメモリデータストアです。

手順 1: Valkey systemdサービスファイルの作成
  1. Valkeyをインストールします。

    > sudo  zypper -n in valkey
  2. Valkey systemdサービスファイルを作成します。

    > sudo  vi /etc/systemd/system/valkey.service
  3. ファイルに次の指定を追加します。

    [Unit]
            Description=Valkey In-Memory Data Store
            After=network.target
    
            [Service]
            User=valkey
            Group=valkey
            ExecStart=/usr/sbin/redis-server /etc/redis/valkey.conf
            LimitNOFILE=10240
            ExecStop=/usr/bin/valkey-cli shutdown
            Restart=always
    
            [Install]
            WantedBy=multi-user.target
  4. サンプルファイルを指定された設定ファイルにコピーします。

    > sudo  cp /etc/valkey/default.conf.example /etc/valkey/valkey.conf
  5. ファイルアクセス権を更新します。

    > sudo  chown valkey:valkey /etc/valkey/valkey.conf
  6. Valkeyサービスを開始して有効にします。

    > sudo  systemctl start valkey
    > sudo  systemctl enable valkey
  7. Valkeyのセットアップを確認します。

    valkey-cli ping

    このコマンドに対して PONGと表示されたら、Valkeyがシステム上で実行されています。

2.2 Valkeyコマンドラインインタフェース

Valkeyコマンドラインインタフェースは、Valkeyの管理、デバッグ、およびテストに使用されます。デフォルトでは、valkey-cliコマンドはアドレス127.0.0.1、ポート6379のサーバに接続します。

valkey-cliコマンドオプションには次のものが含まれます。

-h

デフォルトのIPが127.0.0.1であるサーバホスト名。

-p

デフォルト値が6379のサーバポート。

-t

サーバ接続のタイムアウト(秒単位、小数点も使用可能)。デフォルトのタイムアウトは0で、無制限を意味し、オペレーティング システムによって異なります。

-s

サーバソケットはホスト名とポートを上書きします。

-a

サーバに接続するときに使用するパスワード。VALKEYCLI_AUTH環境変数を使用して、このパスワードをより安全に渡すこともできます。両方のオプションが使用される場合、この引数が優先されます。

--user

ACL(アクセス制御リスト)スタイルを送信するために使用されるユーザ名。 AUTH username passです。-aオプションが必要です。

--pass

新しい--userオプションに合わせるため、 -aオプションのエイリアスとなるパスワード。

--askpass

マスク付きのSTDIN経由のパスワード入力を強制します。この引数が使用されると、 -aおよびVALKEYCLI_AUTH環境変数は無視されます。

-u

valkey://user:password@host:port/dbnum形式のサーバURI。ユーザ、パスワード、dbnumはオプションです。ユーザ名なしの認証の場合は、ユーザ名defaultを使用します。TLSの場合は、スキームvalkeysを使用します 。

--help

ヘルプを出力して終了します。

--version

バージョンを出力して終了します。

--cluster help

利用可能なすべてのクラスタマネージャコマンドを一覧表示します。

例 1: 基本的なvalkey-cliコマンド例:
  • SET:キーと値のペアを設定します。

    > valkey-cli SET KEY_NAME "Hello Valkey"

    次に例を示します。

    > valkey-cli SET TESTKEY "Hello Valkey"
  • GET:キーに関連付けられた値を取得します。

    > valkey-cli GET TESTKEY
      "Hello Valkey"
  • DEL:キーを削除します。

    > valkey-cli DEL TESTKEY
      (integer) 1

    削除された場合は1、見つからない場合は0

  • INFO:Valkeyサーバに関する情報と統計情報を表示します。

    > valkey-cli INFO
      Server
      redis_version:7.2.4
      server_name:valkey
      valkey_version:8.0.2
      redis_git_sha1:00000000
      redis_git_dirty:0
      redis_build_id:e0cc1d08b1f9571a
      server_mode:standalone
      os:Linux 6.12.0-160000.9-default x86_64
      arch_bits:64
      monotonic_clock:POSIX clock_gettime
      multiplexing_api:epoll
      gcc_version:13.3.1
      process_id:974
      process_supervised:no
      run_id:32864c141804bcb17cae98145beee86ca251afd7
      tcp_port:6379
      server_time_usec:1750760734442451
      uptime_in_seconds:2780
      uptime_in_days:0
      hz:10
      configured_hz:10
      lru_clock:5930270
      executable:/usr/sbin/redis-server
      config_file:/etc/valkey/valkey.conf
      io_threads_active:0
      availability_zone:
    
    [...]
  • MONITOR:Valkeyサーバによって処理されたすべてのコマンドをリアルタイムでストリーミングします。

    > valkey-cli MONITOR
    OK
  • KEYS:パターンに一致するすべてのキーを検索します。

    > valkey-cli KEYS "*" # All keys
    "TESTKEY"
    "TESTKEY1"

2.3 RedisからValkeyへの移行

Valkeyは、Redis API、プロトコル、永続データ、ポート、設定ファイルとの互換性を維持しながら、シームレスな代替となるように設計されています。多くの基本的な設定では、RedisからValkey への移行は簡単です。次の手順では、Redisがインストールされ、実行されており、データがロードされていることを前提としています。

手順 2: RedisからValkeyへの移行方法
  1. 現在のRedisサーバのバージョンを確認します。

    > redis-cli info server
            # Server
            redis_version:7.2.4
            redis_git_sha1:00000000
            redis_git_dirty:0
            redis_build_id:8c22b097984bd350
            redis_mode:standalone
            [...]
  2. --force-resolutionオプションを指定してvalkey-compat-redisパッケージをインストールします。

    > sudo  # zypper in --force-resolution valkey-compat-redis
            Refreshing service 'NVIDIA'.
            Refreshing service 'openSUSE'.
            Loading repository data...
            Reading installed packages...
            Resolving package dependencies...
    
            The following 2 NEW packages are going to be installed:
              valkey valkey-compat-redis
    
            The following package is going to be REMOVED:
              redis
    
            2 new packages to install, 1 to remove.
    
            Package download size:     1.3 MiB
    
            Package install size change:
                          |       5.2 MiB  required by packages that will be installed
              -245.2 KiB  |  -    5.4 MiB  released by packages that will be removed
    
            Backend:  classic_rpmtrans
            Continue? [y/n/p/...? shows all options] (y):

    このパッケージは、既存の設定ファイルと永続データを取得し、追加の手順を必要とせずにValkeyに移行します。この移行は、ValkeyがRedis API、プロトコル、永続データ、ポート、設定ファイルと完全に互換性があるために可能になります。

  3. Valkeyを起動して有効にします。

    > sudo  systemctl start valkey
    > sudo  systemctl enable valkey
  4. サーバ情報を確認します。

    > redis-cli info server
                # Server
                redis_version:7.2.4
                server_name:valkey
                valkey_version:7.2.5
                redis_git_sha1:00000000
                redis_git_dirty:0
                redis_build_id:b0d9f188ef999bd3
                redis_mode:standalone
                [...]

    Valkeyはredis_version:7.2.4valkey_version:7.2.5の両方に対応しています。redis_versionを保持することで、valkey_versionでサーバを識別しながら、最大限の互換性を確保できます。Valkeyには、valkey-cli というバイナリがありますが、シンボリックリンクでredis-cliを参照しています。どちらのCLIも同じ機能を備えています。