Redis データ構造入門

RedisRedisBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに (Introduction)

この実験 (lab) では、基本的な Redis のデータ構造と、redis-cli コマンドラインツールを使用してそれらを操作する方法を学びます。この実験 (lab) は、Redis でのデータの保存と取得の方法を理解するための実践的な演習に焦点を当てています。

まず、文字列 (Strings) を扱い、文字列 (string) 値の設定 (set)、取得 (get)、存在確認 (check for existence)、および削除 (delete) の方法を学びます。次に、リスト (Lists) に進み、LPUSHLRANGE などのコマンドを使用します。その後、SADDSMEMBERS を使用してセット (Sets) を管理します。最後に、HSETHGET を使用してハッシュ (Hashes) を探求します。この実践的な経験は、さまざまなアプリケーションで Redis を使用するための確固たる基盤を提供します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL redis(("Redis")) -.-> redis/RedisGroup(["Redis"]) redis/RedisGroup -.-> redis/access_cli("Connect Using CLI") redis/RedisGroup -.-> redis/store_string("Set String Value") redis/RedisGroup -.-> redis/fetch_string("Get String Value") redis/RedisGroup -.-> redis/remove_key("Delete Single Key") redis/RedisGroup -.-> redis/add_left("Push List Left") redis/RedisGroup -.-> redis/fetch_range("Get List Range") redis/RedisGroup -.-> redis/insert_set("Add Set Element") redis/RedisGroup -.-> redis/view_set("List Set Members") subgraph Lab Skills redis/access_cli -.-> lab-552078{{"Redis データ構造入門"}} redis/store_string -.-> lab-552078{{"Redis データ構造入門"}} redis/fetch_string -.-> lab-552078{{"Redis データ構造入門"}} redis/remove_key -.-> lab-552078{{"Redis データ構造入門"}} redis/add_left -.-> lab-552078{{"Redis データ構造入門"}} redis/fetch_range -.-> lab-552078{{"Redis データ構造入門"}} redis/insert_set -.-> lab-552078{{"Redis データ構造入門"}} redis/view_set -.-> lab-552078{{"Redis データ構造入門"}} end

単純なデータのための文字列 (Strings) の操作

このステップでは、Redis を使用して単純な文字列 (string) データを保存および取得する方法を学びます。Redis は、キャッシュまたは単純なキーバリューストア (key-value store) としてよく使用され、文字列 (strings) は Redis が提供する最も基本的なデータ型です。

まず、redis-cli コマンドラインツールを使用して Redis サーバーに接続しましょう。LabEx VM でターミナルを開きます。すでに ~/project ディレクトリにいるはずです。

次のコマンドを入力して、Redis サーバーに接続します。

redis-cli

次のようなプロンプトが表示されるはずです。

127.0.0.1:6379>

これは、Redis サーバーに接続されていることを示します。

次に、単純な文字列 (string) 値を設定 (set) しましょう。SET コマンドを使用します。SET コマンドは、キー (key) と値 (value) の 2 つの引数を取ります。mykey というキー (key) に Hello Redis という値を設定 (set) してみましょう。

SET mykey "Hello Redis"

次の出力が表示されるはずです。

OK

これは、値が正常に設定 (set) されたことを意味します。

次に、GET コマンドを使用して値を取得 (get) しましょう。GET コマンドは、キー (key) という 1 つの引数を取ります。mykey の値を取得 (get) してみましょう。

GET mykey

次の出力が表示されるはずです。

"Hello Redis"

これは、Redis に文字列 (string) 値を正常に保存および取得 (get) したことを確認するものです。

別の例を試してみましょう。今回は、数値を文字列 (string) として保存してみましょう。

SET counter 100
GET counter

次のように表示されるはずです。

"100"

Redis は、これが数値を表していても、文字列 (string) として扱います。

EXISTS コマンドを使用して、キー (key) が存在するかどうかを確認することもできます。

EXISTS mykey

次のように表示されるはずです。

(integer) 1

これは、キー (key) mykey が存在することを示します。キー (key) が存在しない場合、コマンドは (integer) 0 を返します。

最後に、DEL コマンドを使用してキー (key) を削除 (delete) しましょう。

DEL mykey

次のように表示されるはずです。

(integer) 1

これは、キー (key) mykey が正常に削除 (delete) されたことを示します。

ここで、mykey の値を再度取得 (get) しようとすると:

GET mykey

次のように表示されるはずです。

(nil)

これは、キー (key) が削除 (delete) されたことを確認するものです。

コマンドがログに記録されるように、必ず redis-cli を終了してください。次のように入力します。

exit

これにより、通常のターミナルプロンプトに戻ります。

LPUSH と LRANGE を使用したリスト (Lists) の操作

このステップでは、Redis リスト (lists) を使用して、順序付けられたデータのコレクションを保存および取得する方法を学びます。Redis リスト (lists) はリンクリスト (linked lists) として実装されているため、リスト (list) の先頭または末尾からの要素の追加と削除に効率的です。ここでは、LPUSH コマンドと LRANGE コマンドに焦点を当てます。

redis-cli コマンドラインツールを引き続き使用します。まだ接続していない場合は、LabEx VM でターミナルを開き、次のように入力します。

redis-cli

次に、リスト (list) を作成し、LPUSH コマンドを使用していくつかの要素を追加しましょう。LPUSH は、リスト (list) の左 (先頭) に要素を追加します。LPUSH コマンドは、リスト (list) のキー (key) と追加する値の 2 つ以上の引数を取ります。mylist というリスト (list) を作成し、値 item1item2、および item3 を追加してみましょう。

LPUSH mylist item1

次の出力が表示されるはずです。

(integer) 1

これは、1 つの要素がリスト (list) に追加されたことを意味します。LPUSH の戻り値は、操作後のリスト (list) の長さです。

次に、他のアイテムを追加しましょう。

LPUSH mylist item2
(integer) 2
LPUSH mylist item3
(integer) 3

次に、LRANGE コマンドを使用してリスト (list) の要素を取得 (get) しましょう。LRANGE は、リスト (list) から要素の範囲を返します。LRANGE コマンドは、リスト (list) のキー (key)、開始インデックス (start index)、および終了インデックス (end index) の 3 つの引数を取ります。インデックス (indices) は 0 から始まるため、最初の要素はインデックス (index) 0 にあります。リスト (list) のすべての要素を取得 (get) するには、開始インデックス (start index) 0 と終了インデックス (end index) -1 を使用できます。

LRANGE mylist 0 -1

次の出力が表示されるはずです。

1) "item3"
2) "item2"
3) "item1"

LPUSH はリスト (list) の先頭に要素を追加するため、要素は追加した順序とは逆の順序で返されることに注意してください。

リスト (list) にさらにいくつかのアイテムを追加しましょう。

LPUSH mylist item4
LPUSH mylist item5

次に、リスト (list) の最初の 3 つの要素 (インデックス (indices) 0 から 2) を取得 (get) しましょう。

LRANGE mylist 0 2

次のように表示されるはずです。

1) "item5"
2) "item4"
3) "item3"

負のインデックス (indices) を使用して、リスト (list) の末尾から要素にアクセスすることもできます。たとえば、リスト (list) の最後の要素を取得 (get) するには、インデックス (index) -1 を使用できます。

LRANGE mylist -1 -1

次のように表示されるはずです。

1) "item1"

コマンドがログに記録されるように、必ず redis-cli を終了してください。次のように入力します。

exit

これにより、通常のターミナルプロンプトに戻ります。

SADD と SMEMBERS を使用したセット (Sets) の管理

このステップでは、Redis セット (sets) を使用して、一意の要素の順序付けられていないコレクションを保存および管理する方法を学びます。Redis セット (sets) は、ユニークビジターの追跡、タグの保存、オブジェクト間の関係の管理などのタスクに役立ちます。ここでは、SADD コマンドと SMEMBERS コマンドに焦点を当てます。

redis-cli コマンドラインツールを引き続き使用します。まだ接続していない場合は、LabEx VM でターミナルを開き、次のように入力します。

redis-cli

次に、セット (set) を作成し、SADD コマンドを使用していくつかのメンバーを追加しましょう。SADD は、1 つ以上のメンバーをセット (set) に追加します。SADD コマンドは、セット (set) のキー (key) と追加するメンバーの 2 つ以上の引数を取ります。myset というセット (set) を作成し、メンバー member1member2、および member3 を追加してみましょう。

SADD myset member1

次の出力が表示されるはずです。

(integer) 1

これは、1 つのメンバーがセット (set) に追加されたことを意味します。SADD の戻り値は、セット (set) に追加されたメンバーの数です (すでに存在していたメンバーを除く)。

次に、他のアイテムを追加しましょう。

SADD myset member2
(integer) 1
SADD myset member3
(integer) 1

次に、SMEMBERS コマンドを使用してセット (set) のメンバーを取得 (get) しましょう。SMEMBERS は、セット (set) のすべてのメンバーを返します。SMEMBERS コマンドは、セット (set) のキー (key) という 1 つの引数を取ります。

SMEMBERS myset

次の出力が表示されるはずです (セット (sets) は順序付けられていないため、メンバーの順序は異なる場合があります)。

1) "member3"
2) "member2"
3) "member1"

重複するメンバーをセット (set) に追加してみましょう。

SADD myset member1

次のように表示されるはずです。

(integer) 0

これは、member1 がすでにセット (set) に存在するため、新しいメンバーが追加されなかったことを示しています。

セット (set) にさらにいくつかのメンバーを追加しましょう。

SADD myset member4
SADD myset member5

次に、すべてのメンバーを再度取得 (get) しましょう。

SMEMBERS myset

次のようなものが表示されるはずです。

1) "member5"
2) "member4"
3) "member3"
4) "member2"
5) "member1"

順序は異なる場合があります。

コマンドがログに記録されるように、必ず redis-cli を終了してください。次のように入力します。

exit

これにより、通常のターミナルプロンプトに戻ります。

HSET と HGET を使用したハッシュ (Hashes) の調査

このステップでは、Redis ハッシュ (hashes) を使用して、フィールドと値のペアのコレクションを保存および取得する方法を学びます。Redis ハッシュ (hashes) は、複数の属性を持つオブジェクトを表現するのに役立ちます。ここでは、HSET コマンドと HGET コマンドに焦点を当てます。

redis-cli コマンドラインツールを引き続き使用します。まだ接続していない場合は、LabEx VM でターミナルを開き、次のように入力します。

redis-cli

次に、ハッシュ (hash) を作成し、HSET コマンドを使用していくつかのフィールドと値を追加しましょう。HSET は、ハッシュ (hash) 内のフィールドの値を設定します。HSET コマンドは、ハッシュ (hash) のキー (key)、フィールド (field)、および値 (value) の 3 つの引数を取ります。myhash というハッシュ (hash) を作成し、フィールド field1 を値 value1 に設定してみましょう。

HSET myhash field1 value1

次の出力が表示されるはずです。

(integer) 1

これは、新しいフィールドがハッシュ (hash) に追加されたことを意味します。HSET の戻り値は、フィールドがハッシュ (hash) 内で新しい場合は 1、フィールドがすでに存在し、値が更新された場合は 0 です。

次に、別のフィールドを追加しましょう。

HSET myhash field2 value2
(integer) 1

次に、HGET コマンドを使用してフィールドの値を取得 (get) しましょう。HGET は、ハッシュ (hash) 内のフィールドの値を取得 (get) します。HGET コマンドは、ハッシュ (hash) のキー (key) とフィールド (field) の 2 つの引数を取ります。myhash 内の field1 の値を取得 (get) してみましょう。

HGET myhash field1

次の出力が表示されるはずです。

"value1"

これにより、ハッシュ (hash) 内でフィールドと値のペアを正常に保存および取得 (get) できたことが確認されます。

既存のフィールドの値を更新してみましょう。

HSET myhash field1 newvalue1

次のように表示されるはずです。

(integer) 0

これは、フィールドがすでに存在し、その値が更新されたことを示しています。

次に、field1 の値を再度取得 (get) しましょう。

HGET myhash field1

次のように表示されるはずです。

"newvalue1"

これにより、値が更新されたことが確認されます。

ハッシュ (hash) にさらにいくつかのフィールドを追加しましょう。

HSET myhash field3 value3
HSET myhash field4 value4

コマンドがログに記録されるように、必ず redis-cli を終了してください。次のように入力します。

exit

これにより、通常のターミナルプロンプトに戻ります。

まとめ

この実験 (lab) では、文字列から始めて、基本的な Redis のデータ構造を調査しました。redis-cli を使用して Redis サーバーに接続する方法を学び、次に SET コマンドを使用して、キー (key) に関連付けられた文字列値を保存しました。その後、GET コマンドを使用してこれらの値を取得 (get) しました。また、Redis が文字列として保存された数値をどのように扱うかについても確認しました。

さらに、LPUSHLRANGE を使用してリスト (Lists) を作成および操作する方法、SADDSMEMBERS を使用してセット (Sets) を管理する方法、HSETHGET を使用してハッシュ (Hashes) を調査する方法を学びました。これらのコマンドを使用すると、Redis にさまざまな種類のデータを保存および取得 (get) できるため、さまざまなアプリケーションに対応できる汎用性の高いツールになります。検証のためにコマンドがログに記録されるように、各ステップの後に必ず redis-cli を終了してください。