Redis CLIチートシート:主要コマンド一覧と活用例
Redisは、インメモリデータストアとして広く利用されており、その高速性、柔軟性、多様なデータ構造が特徴です。Redisを効果的に活用するためには、コマンドラインインターフェース(CLI)であるredis-cli
の理解が不可欠です。本記事では、redis-cli
の主要コマンドを網羅的に解説し、具体的な活用例を交えながら、Redisの可能性を最大限に引き出すための知識を提供します。
1. Redis CLIとは?
redis-cli
は、Redisサーバーとのインタラクションを可能にする強力なコマンドラインツールです。データベースへの接続、データの操作、サーバーの状態監視など、Redisに関するあらゆる操作をコマンドを通じて実行できます。GUIツールも存在しますが、redis-cli
はシステム管理者や開発者にとって、Redisを直接制御し、効率的に管理するための不可欠なツールです。
2. Redis CLIの基本操作
- 接続:
redis-cli
: ローカルホスト、デフォルトポート(6379)でRedisサーバーに接続します。redis-cli -h <host>
: 指定されたホストのRedisサーバーに接続します。 例:redis-cli -h 192.168.1.10
redis-p <port>
: 指定されたポート番号のRedisサーバーに接続します。 例:redis-cli -p 7000
redis-u <socket>
: Unixドメインソケットを使用してRedisサーバーに接続します。例:redis-cli -u /tmp/redis.sock
redis-a <password>
: パスワード認証が必要なRedisサーバーに接続します。例:redis-cli -a mypassword
redis-cli -h <host> -p <port> -a <password>
: ホスト、ポート、パスワードを指定して接続します。
- コマンドの実行:
redis-cli <command> [arguments]
: 指定されたコマンドと引数を実行します。- 例:
redis-cli ping
(サーバーが応答しているかを確認) - 例:
redis-cli set mykey myvalue
(キー’mykey’に値’myvalue’をセット)
- ヘルプ:
redis-cli --help
:redis-cli
のヘルプを表示します。redis-cli <command> --help
: 特定のコマンドのヘルプを表示します。例:redis-cli set --help
- 終了:
exit
:redis-cli
を終了します。Ctrl + C
:redis-cli
を強制終了します。
3. 主要コマンド一覧と活用例
以下に、redis-cli
で使用頻度の高い主要コマンドをデータ型ごとに分類し、詳細な説明と活用例を示します。
3.1 キー操作
コマンド | 説明 | 活用例 |
---|---|---|
DEL key [key ...] |
指定されたキーを削除します。存在しないキーは無視されます。 | 不要になったデータを削除し、メモリを解放します。例: DEL user:1234 session:5678 |
DUMP key |
指定されたキーのシリアル化された値を返します。データのバックアップや移行に利用できます。 | あるRedisインスタンスから別のRedisインスタンスへデータを移行します。DUMP でシリアル化された値を、RESTORE コマンドで復元します。 |
EXISTS key [key ...] |
指定されたキーが存在するかどうかを確認します。 | キーが存在するかどうかで処理を分岐させます。例: EXISTS user:1234 (ユーザーID 1234のデータが存在するか確認) |
EXPIRE key seconds |
指定されたキーに有効期限を設定します(秒単位)。有効期限が切れると、キーは自動的に削除されます。 | セッション情報やキャッシュデータなど、一時的なデータを管理します。例: EXPIRE session:5678 3600 (セッションID 5678の有効期限を3600秒(1時間)に設定) |
EXPIREAT key timestamp |
指定されたキーに有効期限をUnixタイムスタンプで設定します。 | 特定の日時に有効期限切れにしたい場合に利用します。例: EXPIREAT promotion:abc 1678886400 (プロモーションコードabcの有効期限を2023年3月15日00:00:00に設定) |
KEYS pattern |
指定されたパターンに一致するすべてのキーを検索します。注意:大規模なデータベースではパフォーマンスに影響を与える可能性があります。 | 特定のパターンを持つキーを検索し、一括操作(削除など)を行います。例: KEYS user:* (user:で始まるすべてのキーを検索) |
MIGRATE host port key|"" destination-db timeout [COPY] [REPLACE] [AUTH password] |
Redisインスタンス間でキーをアトミックに移行します。 | 異なるRedisインスタンス間でデータを移動します。シャード構成でデータを再分配する際に役立ちます。 |
MOVE key db |
指定されたキーを別のデータベースに移動します。Redisは複数の論理データベースをサポートしています(デフォルトは0)。 | データを論理的に分離し、管理しやすくします。例: MOVE user:1234 1 (ユーザーID 1234のデータをデータベース1に移動) |
OBJECT subcommand [arguments] |
Redisオブジェクトに関する情報を取得します。エンコーディング、アイドル時間、参照カウントなどを確認できます。 | メモリ使用量やキーの特性を分析し、パフォーマンスチューニングに役立てます。例: OBJECT encoding user:1234 (ユーザーID 1234のデータのエンコーディングを確認) |
PERSIST key |
指定されたキーに設定された有効期限を削除します。キーは永続的に保存されます。 | 有効期限を無効にし、データを永続的に保持します。例: PERSIST session:5678 (セッションID 5678の有効期限を削除) |
PEXPIRE key milliseconds |
指定されたキーに有効期限を設定します(ミリ秒単位)。 | より細かい粒度で有効期限を設定する必要がある場合に利用します。例: PEXPIRE cache:data 500 (キャッシュキーcache:dataの有効期限を500ミリ秒に設定) |
PEXPIREAT key milliseconds-timestamp |
指定されたキーに有効期限をUnixタイムスタンプで設定します(ミリ秒単位)。 | 特定の日時に有効期限切れにしたい場合に利用します。例: PEXPIREAT promotion:abc 1678886400000 (プロモーションコードabcの有効期限を2023年3月15日00:00:00に設定 (ミリ秒単位)) |
PTTL key |
指定されたキーの有効期限までの残り時間をミリ秒単位で返します。キーに有効期限が設定されていない場合は-1、キーが存在しない場合は-2を返します。 | キーの有効期限がいつ切れるかを確認し、キャッシュの更新タイミングなどを制御します。例: PTTL session:5678 (セッションID 5678の有効期限までの残り時間を取得) |
RANDOMKEY |
データベースからランダムなキーを返します。 | テストデータを作成したり、ランダムなサンプルを取得したりする際に利用します。 |
RENAME key newkey |
指定されたキーの名前を変更します。 | キーの名前を変更し、データの整理や命名規則の統一を行います。例: RENAME user:1234 user_profile:1234 (キーの名前をuser:1234からuser_profile:1234に変更) |
RENAMENX key newkey |
指定された新しいキーが存在しない場合にのみ、キーの名前を変更します。 | キーの上書きを防ぎながら、名前を変更します。 |
RESTORE key ttl serialized-value [REPLACE] |
DUMP コマンドでシリアル化された値を復元し、キーを作成します。 |
異なるRedisインスタンスへデータを移行します。DUMP でシリアル化された値を、RESTORE コマンドで復元します。 |
SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination] |
リスト、セット、ソート済みセットの要素をソートします。複雑なソート処理やデータ集計に利用できます。 | ユーザーIDのリストをユーザー名でソートしたり、ランキングを計算したりします。例: SORT user_ids BY user:*->username (ユーザーIDのリストを、対応するユーザーオブジェクトのusernameフィールドでソート) |
TTL key |
指定されたキーの有効期限までの残り時間を秒単位で返します。キーに有効期限が設定されていない場合は-1、キーが存在しない場合は-2を返します。 | キーの有効期限がいつ切れるかを確認し、キャッシュの更新タイミングなどを制御します。例: TTL session:5678 (セッションID 5678の有効期限までの残り時間を取得) |
TYPE key |
指定されたキーに格納されている値の型を返します。 | データの型を確認し、適切な操作を行うための判断材料にします。例: TYPE user:1234 (キーuser:1234に格納されている値の型を取得) |
UNLINK key [key ...] |
DEL コマンドと同様にキーを削除しますが、非同期的に削除処理を行います。大規模なキーを削除する場合に、Redisの応答性を維持できます。 |
大量のデータを削除する際に、Redisサーバーの負荷を軽減します。例: UNLINK massive_data |
SCAN cursor [MATCH pattern] [COUNT count] |
キー空間を段階的にスキャンします。KEYS コマンドよりもパフォーマンスに優れており、大規模なデータベースでのキー検索に適しています。 |
大規模なデータベースで特定のパターンを持つキーを検索します。例: SCAN 0 MATCH user:* COUNT 1000 (カーソル0から開始し、user:で始まるキーを最大1000個検索) |
3.2 文字列操作
コマンド | 説明 | 活用例 |
---|---|---|
APPEND key value |
指定されたキーに格納されている文字列の末尾に、指定された値を追加します。 | 文字列を動的に構築したり、ログメッセージを追記したりします。例: APPEND log:date "New log entry" |
BITCOUNT key [start end] |
指定されたキーに格納されている文字列内のセットされているビットの数をカウントします。startとendはバイト単位のオフセットです。 | ビットマップを使った集計処理などに利用します。 |
BITFIELD key [GET type offset] [SET type offset value] [INCRBY type offset increment] |
ビットフィールド操作を行います。 | カウンター、フラグなどの管理に利用します。 |
BITOP operation destkey key [key ...] |
複数のキーに対してビット演算を行います。operationはAND、OR、XOR、NOTのいずれかです。 | ビットマップを使った複雑な集計処理などに利用します。 |
BITPOS key bit [start] [end] |
指定されたキーに格納されている文字列内で、指定されたビットが最初に現れる位置を返します。startとendはバイト単位のオフセットです。 | ビットマップを使った検索処理などに利用します。 |
DECR key |
指定されたキーに格納されている数値を1減らします。キーが存在しない場合は、0に初期化されてから減算されます。 | カウンターの減算に利用します。例: DECR page_views (ページビュー数を1減らす) |
DECRBY key decrement |
指定されたキーに格納されている数値を指定された量だけ減らします。キーが存在しない場合は、0に初期化されてから減算されます。 | カウンターの減算に利用します。例: DECRBY inventory 5 (在庫数を5減らす) |
GET key |
指定されたキーに格納されている文字列値を取得します。キーが存在しない場合はnilを返します。 | データを取得します。例: GET username (キーusernameに格納されている値を取得) |
GETBIT key offset |
指定されたキーに格納されている文字列内の指定されたオフセットのビットの値を取得します。 | ビットマップを使ったフラグ管理などに利用します。 |
GETRANGE key start end |
指定されたキーに格納されている文字列の指定された範囲を切り出して返します。startとendはインデックスです。 | 文字列の一部を取得します。例: GETRANGE message 0 10 (メッセージの最初の10文字を取得) |
GETSET key value |
指定されたキーの値を設定し、古い値を返します。 | 値を更新する前に古い値を保存しておきたい場合に利用します。例: GETSET last_visited_page current_page (現在のページをlast_visited_pageに設定し、以前のページを取得) |
INCR key |
指定されたキーに格納されている数値を1増やします。キーが存在しない場合は、0に初期化されてから加算されます。 | カウンターの加算に利用します。例: INCR page_views (ページビュー数を1増やす) |
INCRBY key increment |
指定されたキーに格納されている数値を指定された量だけ増やします。キーが存在しない場合は、0に初期化されてから加算されます。 | カウンターの加算に利用します。例: INCRBY likes 10 (いいね数を10増やす) |
INCRBYFLOAT key increment |
指定されたキーに格納されている浮動小数点数を指定された量だけ増やします。キーが存在しない場合は、0に初期化されてから加算されます。 | 浮動小数点数のカウンターの加算に利用します。例: INCRBYFLOAT score 0.5 (スコアを0.5増やす) |
MGET key [key ...] |
指定された複数のキーに格納されている文字列値を一度に取得します。 | 複数のデータをまとめて取得し、ネットワークのラウンドトリップを減らします。例: MGET username email phone (ユーザー名、メールアドレス、電話番号をまとめて取得) |
MSET key value [key value ...] |
指定された複数のキーに値を一度に設定します。 | 複数のデータをまとめて設定し、ネットワークのラウンドトリップを減らします。例: MSET username john email [email protected] phone 123-456-7890 (ユーザー名、メールアドレス、電話番号をまとめて設定) |
MSETNX key value [key value ...] |
指定された複数のキーが存在しない場合にのみ、値を一度に設定します。アトミックな操作です。 | 複数のキーを同時に初期化する場合に利用します。 |
PSETEX key milliseconds value |
指定されたキーに値を設定し、有効期限をミリ秒単位で設定します。 | キャッシュデータなど、一時的なデータをミリ秒単位で管理します。例: PSETEX session:5678 500 "session_data" (セッションID 5678のデータを500ミリ秒間保持) |
SET key value [EX seconds] [PX milliseconds] [NX|XX] [KEEPTTL] |
指定されたキーに値を設定します。EX: 有効期限を秒単位で設定。PX: 有効期限をミリ秒単位で設定。NX: キーが存在しない場合にのみ設定。XX: キーが存在する場合にのみ設定。KEEPTTL: キーのTTLを保持 | データを設定します。有効期限や存在チェックなどのオプションも指定できます。例: SET username john EX 3600 (ユーザー名johnを3600秒間保持)、 SET session:5678 "session_data" NX (セッションID 5678が存在しない場合のみデータを設定) |
SETBIT key offset value |
指定されたキーに格納されている文字列内の指定されたオフセットのビットの値を設定します。 | ビットマップを使ったフラグ管理などに利用します。 |
SETEX key seconds value |
指定されたキーに値を設定し、有効期限を秒単位で設定します。 | キャッシュデータなど、一時的なデータを秒単位で管理します。例: SETEX cache:data 60 "cached_data" (キャッシュキーcache:dataのデータを60秒間保持) |
SETNX key value |
指定されたキーが存在しない場合にのみ、値を設定します。 | キーが存在しない場合にのみ値を設定し、競合状態を防ぎます。例: SETNX lock:resource 1 (ロックを獲得) |
SETRANGE key offset value |
指定されたキーに格納されている文字列の指定されたオフセットから始まる部分を、指定された値で上書きします。 | 文字列の一部を置換します。例: SETRANGE message 5 "new" (メッセージの5文字目からnewで上書き) |
STRLEN key |
指定されたキーに格納されている文字列の長さを返します。 | 文字列の長さを確認します。例: STRLEN message (メッセージの長さを取得) |
3.3 リスト操作
コマンド | 説明 | 活用例 |
---|---|---|
BLPOP key [key ...] timeout |
指定されたキーのいずれかに要素が追加されるまで、またはタイムアウトするまでブロックします。 | メッセージキューとして利用します。バックグラウンド処理を行うワーカープロセスがキューからジョブを取り出す際に利用します。 |
BRPOP key [key ...] timeout |
BLPOP と同様ですが、リストの末尾から要素を取り出します。 |
メッセージキューとして利用します。 |
BRPOPLPUSH source destination timeout |
RPOPLPUSH のブロッキングバージョンです。 |
信頼性の高いメッセージキューを構築する際に利用します。ジョブが処理されるまで別のリストに移動させ、処理が完了したら元のリストから削除します。 |
LINDEX key index |
指定されたキーのリスト内の指定されたインデックスにある要素を取得します。 | リスト内の特定の要素にアクセスします。例: LINDEX mylist 0 (リストmylistの最初の要素を取得) |
LINSERT key BEFORE|AFTER pivot value |
指定されたキーのリスト内の指定されたピボット要素の前にまたは後に、指定された値を挿入します。 | リスト内の特定の位置に要素を挿入します。例: LINSERT mylist BEFORE "existing_value" "new_value" (リストmylistのexisting_valueの前にnew_valueを挿入) |
LLEN key |
指定されたキーのリストの長さを返します。 | リストのサイズを確認します。例: LLEN mylist (リストmylistの長さを取得) |
LPOP key |
指定されたキーのリストから最初の要素を削除して返します。 | リストから要素を取り出す際に利用します。例: LPOP mylist (リストmylistから最初の要素を取り出す) |
LPUSH key value [value ...] |
指定されたキーのリストの先頭に、指定された値を挿入します。 | リストに要素を追加します。例: LPUSH mylist "new_value" (リストmylistの先頭にnew_valueを追加) |
LPUSHX key value |
指定されたキーのリストが存在する場合のみ、リストの先頭に、指定された値を挿入します。 | リストが存在する場合のみ要素を追加します。 |
LRANGE key start stop |
指定されたキーのリストから指定された範囲の要素を返します。 | リストの一部を取得します。例: LRANGE mylist 0 2 (リストmylistの最初の3つの要素を取得) |
LREM key count value |
指定されたキーのリストから、指定された値に等しい要素を削除します。countは削除する要素の数を指定します。countが正の数の場合、リストの先頭から削除されます。countが負の数の場合、リストの末尾から削除されます。countが0の場合、すべての要素が削除されます。 | リストから要素を削除します。例: LREM mylist 0 "value_to_remove" (リストmylistから”value_to_remove”をすべて削除) |
LSET key index value |
指定されたキーのリスト内の指定されたインデックスにある要素の値を設定します。 | リスト内の特定の要素を更新します。例: LSET mylist 0 "new_value" (リストmylistの最初の要素をnew_valueに更新) |
LTRIM key start stop |
指定されたキーのリストを指定された範囲にトリミングします。指定された範囲外の要素は削除されます。 | リストのサイズを制限します。例: LTRIM mylist 0 99 (リストmylistの最初の100個の要素のみ保持) |
RPOP key |
指定されたキーのリストから最後の要素を削除して返します。 | リストから要素を取り出す際に利用します。例: RPOP mylist (リストmylistから最後の要素を取り出す) |
RPOPLPUSH source destination |
指定されたソースリストから最後の要素を削除し、指定されたデスティネーションリストの先頭に挿入します。 | リスト間で要素を移動します。ジョブキューなどを作成する際に利用できます。 |
RPUSH key value [value ...] |
指定されたキーのリストの末尾に、指定された値を挿入します。 | リストに要素を追加します。例: RPUSH mylist "new_value" (リストmylistの末尾にnew_valueを追加) |
RPUSHX key value |
指定されたキーのリストが存在する場合のみ、リストの末尾に、指定された値を挿入します。 | リストが存在する場合のみ要素を追加します。 |
3.4 セット操作
コマンド | 説明 | 活用例 |
---|---|---|
SADD key member [member ...] |
指定されたキーのセットに、指定されたメンバーを追加します。 | ユーザーのグループ membershipを管理します。例: SADD group:editors user:john user:jane (user:johnとuser:janeをgroup:editorsに追加) |
SCARD key |
指定されたキーのセットのカーディナリティ(要素数)を返します。 | セットのサイズを確認します。例: SCARD group:editors (group:editorsの要素数を取得) |
SDIFF key [key ...] |
指定された複数のセットの差集合を返します。 | 複数のグループに所属するユーザーを特定します。 |
SDIFFSTORE destination key [key ...] |
指定された複数のセットの差集合を計算し、指定されたデスティネーションキーに格納します。 | 差集合の結果を別のセットに保存します。 |
SINTER key [key ...] |
指定された複数のセットの積集合を返します。 | 共通の興味を持つユーザーを特定します。例: 複数のカテゴリの購読者セットの積集合を計算して、すべてのカテゴリを購読しているユーザーを特定する。 |
SINTERSTORE destination key [key ...] |
指定された複数のセットの積集合を計算し、指定されたデスティネーションキーに格納します。 | 積集合の結果を別のセットに保存します。 |
SISMEMBER key member |
指定されたキーのセットに、指定されたメンバーが存在するかどうかを確認します。 | ユーザーが特定のグループに所属しているかどうかを判定します。例: SISMEMBER group:editors user:john (user:johnがgroup:editorsに所属しているか確認) |
SMEMBERS key |
指定されたキーのセットのすべてのメンバーを返します。 | セットの全要素を取得します。例: SMEMBERS group:editors (group:editorsの全要素を取得) |
SMOVE source destination member |
指定されたソースセットから指定されたメンバーを削除し、指定されたデスティネーションセットに追加します。 | ユーザーのグループ membershipを移動します。 |
SPOP key [count] |
指定されたキーのセットからランダムなメンバーを削除して返します。countが指定された場合は、指定された数のメンバーを返します。 | ランダムな要素をセットから取り出します。例: ランダムな当選者を選出する。 |
SRANDMEMBER key [count] |
指定されたキーのセットからランダムなメンバーを返します。削除はしません。countが指定された場合は、指定された数のメンバーを返します。 | ランダムな要素をセットから取得します。例: ランダムな記事を推薦する。 |
SREM key member [member ...] |
指定されたキーのセットから、指定されたメンバーを削除します。 | ユーザーのグループ membershipを削除します。例: SREM group:editors user:john (group:editorsからuser:johnを削除) |
SUNION key [key ...] |
指定された複数のセットの和集合を返します。 | 複数のグループのすべてのユーザーを特定します。 |
SUNIONSTORE destination key [key ...] |
指定された複数のセットの和集合を計算し、指定されたデスティネーションキーに格納します。 | 和集合の結果を別のセットに保存します。 |
SSCAN key cursor [MATCH pattern] [COUNT count] |
セットを段階的にスキャンします。SMEMBERS よりもパフォーマンスに優れており、大規模なセットでの要素検索に適しています。 |
大規模なセットで特定のパターンを持つ要素を検索します。 |
3.5 ハッシュ操作
コマンド | 説明 | 活用例 |
---|---|---|
HDEL key field [field ...] |
指定されたキーのハッシュから、指定されたフィールドを削除します。 | ユーザープロファイルの特定のフィールドを削除します。例: HDEL user:1234 email (ユーザーID 1234のプロファイルからemailフィールドを削除) |
HEXISTS key field |
指定されたキーのハッシュに、指定されたフィールドが存在するかどうかを確認します。 | ハッシュに特定のフィールドが存在するかどうかで処理を分岐させます。例: HEXISTS user:1234 email (ユーザーID 1234のプロファイルにemailフィールドが存在するか確認) |
HGET key field |
指定されたキーのハッシュから、指定されたフィールドの値を取得します。 | ユーザープロファイルの特定のフィールドを取得します。例: HGET user:1234 username (ユーザーID 1234のプロファイルからusernameフィールドの値を取得) |
HGETALL key |
指定されたキーのハッシュのすべてのフィールドと値を取得します。 | ユーザープロファイル全体を取得します。例: HGETALL user:1234 (ユーザーID 1234のプロファイル全体を取得) |
HINCRBY key field increment |
指定されたキーのハッシュの指定されたフィールドの値を、指定された量だけ増やします。フィールドが存在しない場合は、0に初期化されてから加算されます。 | ハッシュ内の数値カウンターを増やす際に利用します。例: ユーザーの投稿数をカウントする。HINCRBY user:1234 post_count 1 |
HINCRBYFLOAT key field increment |
指定されたキーのハッシュの指定されたフィールドの値を、指定された量だけ増やします(浮動小数点数)。フィールドが存在しない場合は、0に初期化されてから加算されます。 | ハッシュ内の浮動小数点数カウンターを増やす際に利用します。例: ユーザーの平均評価を更新する。 |
HKEYS key |
指定されたキーのハッシュのすべてのフィールド名を返します。 | ハッシュに含まれるフィールドの一覧を取得します。例: HKEYS user:1234 (ユーザーID 1234のプロファイルのすべてのフィールド名を取得) |
HLEN key |
指定されたキーのハッシュのフィールド数を返します。 | ハッシュのサイズを確認します。例: HLEN user:1234 (ユーザーID 1234のプロファイルのフィールド数を取得) |
HMGET key field [field ...] |
指定されたキーのハッシュから、指定された複数のフィールドの値を一度に取得します。 | ユーザープロファイルの複数のフィールドをまとめて取得します。例: HMGET user:1234 username email phone (ユーザーID 1234のプロファイルからusername, email, phoneフィールドの値をまとめて取得) |
HMSET key field value [field value ...] |
指定されたキーのハッシュに、指定された複数のフィールドと値を一度に設定します。 | ユーザープロファイルの複数のフィールドをまとめて設定します。例: HMSET user:1234 username john email [email protected] phone 123-456-7890 (ユーザーID 1234のプロファイルにusername, email, phoneフィールドの値をまとめて設定) |
HSCAN key cursor [MATCH pattern] [COUNT count] |
ハッシュを段階的にスキャンします。HGETALL よりもパフォーマンスに優れており、大規模なハッシュでのフィールド検索に適しています。 |
大規模なハッシュで特定のパターンを持つフィールドを検索します。 |
HSET key field value |
指定されたキーのハッシュに、指定されたフィールドと値を設定します。 | ユーザープロファイルの特定のフィールドを設定します。例: HSET user:1234 username john (ユーザーID 1234のプロファイルにusernameフィールドの値をjohnに設定) |
HSETNX key field value |
指定されたキーのハッシュに、指定されたフィールドが存在しない場合にのみ、指定されたフィールドと値を設定します。 | ハッシュにフィールドが存在しない場合にのみ値を設定します。 |
HSTRLEN key field |
指定されたキーのハッシュの指定されたフィールドの値の長さを返します。 | ハッシュ内の文字列値の長さを確認します。 |
HVALS key |
指定されたキーのハッシュのすべてのフィールドの値を返します。 | ハッシュに含まれるすべての値を取得します。例: HVALS user:1234 (ユーザーID 1234のプロファイルのすべての値を取得) |
3.6 ソート済みセット操作
コマンド | 説明 | 活用例 |
---|---|---|
BZMPOP key [key ...] timeout MIN|MAX count |
ZMPOP のブロッキングバージョンです。 |
|
BZPOPMAX key [key ...] timeout |
ZPOPMAX のブロッキングバージョンです。 |
リアルタイムランキングを構築する際に、高スコアの要素が追加されるまでブロックします。 |
BZPOPMIN key [key ...] timeout |
ZPOPMIN のブロッキングバージョンです。 |
優先度キューを構築する際に、低スコアの要素が追加されるまでブロックします。 |
ZADD key [NX|XX] [GT|LT] [CH] [INCR] score member [score member ...] |
指定されたキーのソート済みセットに、指定されたスコアとメンバーを追加します。 | ランキングシステムを構築します。例: ZADD leaderboard 100 user:john (leaderboardにuser:johnをスコア100で追加) |
ZCARD key |
指定されたキーのソート済みセットのカーディナリティ(要素数)を返します。 | ソート済みセットのサイズを確認します。例: ZCARD leaderboard (leaderboardの要素数を取得) |
ZCOUNT key min max |
指定されたキーのソート済みセット内で、指定されたスコア範囲内の要素数を返します。 | 特定のスコア範囲内の要素数をカウントします。例: ZCOUNT leaderboard 80 120 (leaderboardでスコアが80から120の間の要素数をカウント) |
ZDIFF numkeys key [key ...] [WITHSCORES] |
複数のソート済みセットの差集合を返します。 | |
ZDIFFSTORE destination numkeys key [key ...] |
複数のソート済みセットの差集合を計算し、指定されたデスティネーションキーに格納します。 | |
ZINCRBY key increment member |
指定されたキーのソート済みセット内の指定されたメンバーのスコアを、指定された量だけ増やします。メンバーが存在しない場合は、スコア0で追加されます。 | メンバーのスコアを動的に更新します。例: ユーザーのスコアをゲームの進行状況に応じて更新する。 ZINCRBY leaderboard 10 user:john (leaderboardのuser:johnのスコアを10増やす) |
`ZINTER numkeys key [key …] [ |