はじめに
この実験では、Redis の基本的なデータ構造と、コマンドラインツール redis-cli を使用してそれらを操作する方法を学びます。Redis でのデータの保存と取得を理解するための実践的な演習に焦点を当てます。
まずは文字列 (Strings) から始め、値の設定、取得、存在確認、削除の方法を学びます。次に、LPUSH や LRANGE コマンドを使用してリスト (Lists) を扱います。続いて、SADD と SMEMBERS を使ってセット (Sets) を管理します。最後に、HSET と HGET を使用してハッシュ (Hashes) を探求します。このハンズオン体験を通じて、さまざまなアプリケーションで Redis を活用するための強固な基礎を築くことができます。
文字列による単純なデータの操作
このステップでは、Redis を使用して単純な文字列データを保存および取得する方法を学びます。Redis はキャッシュや単純なキー・バリュー型ストアとしてよく利用され、文字列はその中で最も基本的なデータ型です。
まず、redis-cli コマンドラインツールを使用して Redis サーバーに接続します。LabEx VM でターミナルを開いてください。すでに ~/project ディレクトリにいるはずです。
以下のコマンドを入力して Redis サーバーに接続します。
redis-cli
以下のようなプロンプトが表示されるはずです。
127.0.0.1:6379>
これは Redis サーバーに正常に接続されたことを示しています。
次に、単純な文字列値を設定してみましょう。SET コマンドを使用します。SET コマンドは、キーと値という2つの引数を取ります。mykey というキーに Hello Redis という値を設定します。
SET mykey "Hello Redis"
以下の出力が表示されるはずです。
OK
これは値が正常に設定されたことを意味します。
次に、GET コマンドを使用して値を取得します。GET コマンドは、キーという1つの引数を取ります。mykey の値を取得してみましょう。
GET mykey
以下の出力が表示されるはずです。
"Hello Redis"
これで、Redis に文字列値を正常に保存および取得できたことが確認できました。
別の例を試してみましょう。今度は数値を文字列として保存します。
SET counter 100
GET counter
以下のように表示されます。
"100"
Redis は数値を表している場合でも、これを文字列として扱います。
EXISTS コマンドを使用して、キーが存在するかどうかを確認することもできます。
EXISTS mykey
以下のように表示されます。
(integer) 1
これはキー mykey が存在することを示しています。キーが存在しない場合、コマンドは (integer) 0 を返します。
最後に、DEL コマンドを使用してキーを削除します。
DEL mykey
以下のように表示されます。
(integer) 1
これはキー mykey が正常に削除されたことを示しています。
ここで、もう一度 mykey の値を取得しようとすると:
GET mykey
以下のように表示されます。
(nil)
これはキーが削除されたことを確認するものです。
コマンドが確実に記録されるよう、redis-cli を終了することを忘れないでください。以下を入力します。
exit
これで通常のターミナルプロンプトに戻ります。
LPUSH と LRANGE を使用したリストの操作
このステップでは、Redis のリストを使用して順序付けられたデータのコレクションを保存および取得する方法を学びます。Redis のリストは連結リストとして実装されており、リストの先頭や末尾への要素の追加・削除が効率的です。ここでは LPUSH と LRANGE コマンドに焦点を当てます。
引き続き redis-cli コマンドラインツールを使用します。まだ接続していない場合は、LabEx VM でターミナルを開き、以下を入力してください。
redis-cli
次に、リストを作成し、LPUSH コマンドを使用して要素を追加します。LPUSH はリストの左側(先頭)に要素を追加します。LPUSH コマンドは、リストのキーと追加する値という2つ以上の引数を取ります。mylist というリストを作成し、item1、item2、item3 という値を追加します。
LPUSH mylist item1
以下の出力が表示されるはずです。
(integer) 1
これはリストに1つの要素が追加されたことを意味します。LPUSH の戻り値は、操作後のリストの長さです。
次に、他のアイテムを追加します。
LPUSH mylist item2
(integer) 2
LPUSH mylist item3
(integer) 3
次に、LRANGE コマンドを使用してリストの要素を取得します。LRANGE はリストから要素の範囲を返します。LRANGE コマンドは、リストのキー、開始インデックス、終了インデックスという3つの引数を取ります。インデックスは0から始まるため、最初の要素はインデックス0です。リストのすべての要素を取得するには、開始インデックスに0、終了インデックスに -1 を使用します。
LRANGE mylist 0 -1
以下の出力が表示されるはずです。
1) "item3"
2) "item2"
3) "item1"
LPUSH はリストの先頭に要素を追加するため、追加した順序とは逆順で要素が返されることに注意してください。
リストにさらにいくつかアイテムを追加してみましょう。
LPUSH mylist item4
LPUSH mylist item5
次に、リストの最初の3つの要素(インデックス0から2)を取得します。
LRANGE mylist 0 2
以下のように表示されます。
1) "item5"
2) "item4"
3) "item3"
負のインデックスを使用して、リストの末尾から要素にアクセスすることもできます。例えば、リストの最後の要素を取得するには、インデックス -1 を使用します。
LRANGE mylist -1 -1
以下のように表示されます。
1) "item1"
コマンドが確実に記録されるよう、redis-cli を終了することを忘れないでください。以下を入力します。
exit
これで通常のターミナルプロンプトに戻ります。
SADD と SMEMBERS を使用したセットの管理
このステップでは、Redis のセットを使用して、一意な要素の順序付けられていないコレクションを保存および管理する方法を学びます。Redis のセットは、ユニークな訪問者の追跡、タグの保存、オブジェクト間の関係管理などのタスクに役立ちます。ここでは SADD と SMEMBERS コマンドに焦点を当てます。
引き続き redis-cli コマンドラインツールを使用します。まだ接続していない場合は、LabEx VM でターミナルを開き、以下を入力してください。
redis-cli
次に、セットを作成し、SADD コマンドを使用してメンバーを追加します。SADD はセットに1つ以上のメンバーを追加します。SADD コマンドは、セットのキーと追加するメンバーという2つ以上の引数を取ります。myset というセットを作成し、member1、member2、member3 というメンバーを追加します。
SADD myset member1
以下の出力が表示されるはずです。
(integer) 1
これは1つのメンバーがセットに追加されたことを意味します。SADD の戻り値は、セットに追加されたメンバーの数です(すでに存在していたメンバーは除外されます)。
次に、他のアイテムを追加します。
SADD myset member2
(integer) 1
SADD myset member3
(integer) 1
次に、SMEMBERS コマンドを使用してセットのメンバーを取得します。SMEMBERS はセットのすべてのメンバーを返します。SMEMBERS コマンドは、セットのキーという1つの引数を取ります。
SMEMBERS myset
以下の出力が表示されるはずです(セットは順序付けられていないため、メンバーの順序は異なる場合があります)。
1) "member3"
2) "member2"
3) "member1"
セットに重複するメンバーを追加してみましょう。
SADD myset member1
以下のように表示されます。
(integer) 0
これは member1 がすでにセット内に存在していたため、新しいメンバーは追加されなかったことを示しています。
セットにさらにいくつかメンバーを追加してみましょう。
SADD myset member4
SADD myset member5
次に、すべてのメンバーを再度取得します。
SMEMBERS myset
以下のような出力が表示されるはずです。
1) "member5"
2) "member4"
3) "member3"
4) "member2"
5) "member1"
順序は異なる場合があります。
コマンドが確実に記録されるよう、redis-cli を終了することを忘れないでください。以下を入力します。
exit
これで通常のターミナルプロンプトに戻ります。
HSET と HGET を使用したハッシュの探求
このステップでは、Redis のハッシュを使用して、フィールドと値のペアのコレクションを保存および取得する方法を学びます。Redis のハッシュは、複数の属性を持つオブジェクトを表現するのに役立ちます。ここでは HSET と HGET コマンドに焦点を当てます。
引き続き redis-cli コマンドラインツールを使用します。まだ接続していない場合は、LabEx VM でターミナルを開き、以下を入力してください。
redis-cli
次に、ハッシュを作成し、HSET コマンドを使用してフィールドと値を追加します。HSET はハッシュ内のフィールドの値を設定します。HSET コマンドは、ハッシュのキー、フィールド、値という3つの引数を取ります。myhash というハッシュを作成し、field1 フィールドに value1 という値を設定します。
HSET myhash field1 value1
以下の出力が表示されるはずです。
(integer) 1
これは新しいフィールドがハッシュに追加されたことを意味します。HSET の戻り値は、フィールドがハッシュ内で新しい場合は 1、フィールドがすでに存在し値が更新された場合は 0 です。
次に、別のフィールドを追加します。
HSET myhash field2 value2
(integer) 1
次に、HGET コマンドを使用してフィールドの値を取得します。HGET はハッシュ内のフィールドの値を取得します。HGET コマンドは、ハッシュのキーとフィールドという2つの引数を取ります。myhash 内の field1 の値を取得してみましょう。
HGET myhash field1
以下の出力が表示されるはずです。
"value1"
これで、ハッシュ内のフィールドと値のペアを正常に保存および取得できたことが確認できました。
既存のフィールドの値を更新してみましょう。
HSET myhash field1 newvalue1
以下のように表示されます。
(integer) 0
これはフィールドがすでに存在しており、その値が更新されたことを示しています。
次に、field1 の値を再度取得します。
HGET myhash field1
以下のように表示されます。
"newvalue1"
これで値が更新されたことが確認できました。
ハッシュにさらにいくつかフィールドを追加してみましょう。
HSET myhash field3 value3
HSET myhash field4 value4
コマンドが確実に記録されるよう、redis-cli を終了することを忘れないでください。以下を入力します。
exit
これで通常のターミナルプロンプトに戻ります。
まとめ
この実験では、Redis の基本的なデータ構造について、文字列から順に探求しました。redis-cli を使用して Redis サーバーに接続する方法を学び、SET コマンドを使用してキーに関連付けられた文字列値を保存しました。その後、GET コマンドを使用してこれらの値を取得しました。また、Redis が数値を文字列として保存する場合の扱いについても確認しました。
さらに、LPUSH と LRANGE を使用したリストの作成と操作、SADD と SMEMBERS を使用したセットの管理、そして HSET と HGET を使用したハッシュの探求を行いました。これらのコマンドを使用することで、Redis にさまざまな種類のデータを保存および取得できるようになり、多様なアプリケーションに対応できる汎用性の高いツールとなります。検証のためにコマンドが確実に記録されるよう、各ステップの後に redis-cli を終了することを忘れないでください。


