データベース
 Computer >> コンピューター >  >> プログラミング >> データベース

Redisの使用を開始する

Redisの使用を開始する

Redisの速度と柔軟性により、開発者にとって非常に強力なツールになり、さまざまな方法で使用できます。 Redisは多くの場合、Key-Valueストアと呼ばれますが、5つの異なるデータ構造タイプもサポートしているため、データ構造サーバーとしてより適切に説明されます。

  • 文字列
  • ハッシュ
  • リスト
  • セット
  • 並べ替えられたセット

各構造タイプには、共有コマンドと、特定の構造タイプに固有のいくつかのコマンドがあります。

この紹介では、Redisの使用方法の基本と、さまざまなデータ構造の概要について説明します。より基本的なコマンドのいくつかについて説明しますが、執筆時点でRedisには160以上あり、redis.io/commandsで優れたドキュメントを見つけることができることを覚えておいてください。

Redisの開始

ObjectRocket for Redisが提供するインスタンスを使用するか、Redisをローカルにインストールします。

ローカルにインストールするには、コードをダウンロード、抽出、コンパイルします。

$ wget https://download.redis.io/releases/redis-2.8.17.tar.gz
$ tar xzf redis-2.8.17.tar.gz
$ cd redis-2.8.17
$ make

ローカルインスタンスを開始します:

$ src/redis-server

Redisの使用

これで、組み込みのクライアントを使用してRedisを操作する準備が整いました。 ObjectRocket for Redisインスタンスの場合、ホスト名、ポート、およびパスワードを使用してredis-cliを開始します。

$ redis-cli -h my-host -p 1234 -a mypassword

ローカルインスタンスを使用している場合、ホストはlocalhost、デフォルトのポートは6379、デフォルトではパスワードはありません。

$ redis-cli

GETとSET

最も単純なレベルでは、RedisはKey-Valueストアとして説明できます。コマンドSETfoobarを発行することにより、fooの値をbarに設定します。たとえば、開始したばかりのredis-cliから次のコマンドを発行します。

redis> SET foo bar
OK

次に、GETコマンドを使用してfooの値を読み取ります。

redis> GET foo
"bar"

EXPIREとTTL

EXPIREコマンドを使用して、指定された時間内に期限切れになるようにキーを設定できます。 TTLは、キーの有効期限が切れるまでの残り時間を報告します。

redis> SET foo bar
OK
redis> EXPIRE foo 120
(integer) 1
redis> TTL foo
(integer) 113

リスト

Redisの際立った特徴の1つは、キーの値が単なる値ではなく、データ構造である可能性があることです。

リストを作成するには、LPUSHまたはRPUSHを使用します。リストがすでに存在する場合、LPUSHは指定された値をリストの最初に追加し、RPUSHはそれをリストの最後に追加します。

redis> LPUSH cities "San Francisco"
(integer) 1
redis> RPUSH cities "Austin"
(integer) 2
redis> LRANGE cities 0 -1
1. "San Francisco"
2. "Austin"
redis> SORT cities alpha
1. "Austin"
2. "San Francisco"
redis> LPOP cities
"San Francisco"
redis> LRANGE cities 0 -1
1. "Austin"

SORTコマンドは、リストを辞書式順序でALPHA引数を使用して昇順で並べ替えます。降順で並べ替えるには、DESC引数をSORTコマンドに追加します。

RPOPコマンドは、リストの最後から要素をポップします。 LPOPは、リストの最初から要素をポップします。

セット

セットはリストに似ていますが、各要素が1回だけ発生する可能性がある点が異なります。以下の例では、米国の州の小さなセットを作成します。 SADDコマンドは、アイテムがセットにすでに存在しない限り、アイテムをセットに追加します。アイテムが存在しない場合、アイテムが追加され、1が返されます。それ以外の場合は、0が返されます。 SMEMBERSは、セット内のすべてのアイテムを返します。 SCARDは、セットの要素の数を返します。 SREMはリストからアイテムを削除します。

redis> SADD states "Vermont"
(integer) 1
redis> SMEMBERS states
1. "Vermont"
redis> SADD states "Texas"
(integer) 1
redis> SCARD states
(integer) 2
redis> SADD states "Vermont"
(integer) 0
redis> SMEMBERS states
1. "Vermont"
2. "Texas"
redis> SADD states "California"
(integer) 1
redis> SMEMBERS states
1. "Vermont"
2. "Texas"
3. "California"
redis> SREM states "California"
(integer) 1
redis> SMEMBERS states
1. "Vermont"
2. "Texas"

ハッシュ

ハッシュを使用して、文字列値を各キーのフィールドに割り当ててマップできます。いくつかのフィールドを持つハッシュは、スペースをほとんどとらない方法で保存されるため、小さなRedisインスタンスに数百万のオブジェクトを保存できます。次の例では、HSETを使用してuser:1の名前を「johnracker」に設定しています。指図。 HGETコマンドは、ユーザーの名前の値を取得するために使用されます。 HGETALLは、指定されたキーに関連するすべてのキーと値を返します。

redis> HSET user:1 name "john racker"
(integer) 1
redis> HGET user:1 name
"joe racker"
redis> HSET user:1 company "objectrocket"
(integer) 1
redis> HGET user:1 company
"ObjectRocket"
redis> HSET user:1 city "austin"
(integer) 1
redis> HGET user:1 city
"austin"
redis> HGETALL user:1
1. "name"
2. "john racker"
3. "company"
4. "objectrocket"
5. "city"
6. "austin"

ソートされたセット

ソートされたセットは、すべてのメンバーがスコアに関連付けられていますが、文字列の繰り返しのないコレクションであるという点でセットに似ています。並べ替えられたセットは、スコアの昇順で並べ替えられます。同じ要素は1回だけ存在し、スコアを繰り返すことはできますが、要素を繰り返すことはできません。

この例では、2014年10月23日現在の英国プレミアリーグの上位5チームの合計ポイントを追加します。

redis> ZADD EPL 22 "chelsea"
(integer) 1
redis> ZADD EPL 17 "man city"
(integer) 1
redis> ZADD EPL 16 "southampton"
(integer) 1
redis> ZADD EPL 13 "liverpool"
(integer) 1
redis> ZADD EPL 13 "west ham"
(integer) 1
redis> ZRANK EPL "chelsea"
(integer) 3
redis> ZRANK EPL "liverpool"
(integer) 0
redis> ZRANK EPL "arsenal"
(nil)

次に、ZRANGEを使用して合計ポイントに基づいてチームをランク付けします:

redis> ZRANGE EPL 0 -1
1) "liverpool"
2) "west ham"
3) "southampton"
4) "man city"
5) "chelsea"
redis> ZRANGE EPL 2 3
1) "southampton"
2) "man city"

セットは昇順で並べ替えられるため、ポイントの合計に基づいてチームのランクを確認するには、ZREVRANGEを使用する必要があります

redis> ZREVRANGE EPL 0 -1
1) "chelsea"
2) "man city"
3) "southampton"
4) "west ham"
5) "liverpool"
redis> ZREVRANGE EPL 0 -1 WITHSCORES
1) "chelsea"
2) "22"
3) "man city"
4) "17"
5) "southampton"
6) "16"
7) "west ham"
8) "13"
9) "liverpool"
10) "13"

次に、サザンプトンはゲームをプレイして勝ち、3ポイントを獲得します。 ZINCRBYを使用してスコアをインクリメントし、ZREVRANGEを使用してサウサンプトンがリーグで2位になったことを確認します。 ZREVRANKを使用して、サウサンプトンのランクを確認することもできます。注:ランクは0に基づいています。つまり、スコアが最も高いメンバー(チェルシー)のランクは0です。

redis> ZINCRBY EPL 3 "southampton"
"19"
redis> ZREVRANGE EPL 0 -1 WITHSCORES
1) "chelsea"
2) "22"
3) "southampton"
4) "19"
5) "man city"
6) "17"
7) "west ham"
8) "13"
9) "liverpool"
10) "13"
redis> ZREVRANK EPL "southampton"
(integer) 1
redis> ZREVRANGEBYSCORE EPL 25 (15
1) "chelsea"
2) "southampton"
3) "man city"

今後数週間で、Redisと、この非常に用途の広い開発者ツールのいくつかのユースケースについて詳しく説明します。 Redisの実行について質問がある場合、またはアプリケーションスタックでRedisをどのように使用しているかについて教えてください。


  1. ウェブ用の Android メッセージの使用を開始する

    Google は 1 つの巨大なプラットフォームであり、疑いの余地はありません。しかし、最高の検索エンジンの 1 つであるだけでなく、日常生活を楽にするさまざまなサービスも提供しています。 Google は最近、どの Web ブラウザからでもテキスト メッセージを送受信できる Android メッセージ アプリのアップデートをリリースしました。このサービスを使用すると、Android ユーザーは任意の PC または Mac に簡単にメッセージを送信できます。 開始するには、Android メッセージ アプリの更新バージョンが必要です。それが終わったら、Web サービスで Android メッ

  2. Xen 仮想化の開始

    Zで綴られるZenは、8時間保持した後、雪の中でおしっこをしているときに頭頂部にある典型的な感覚です. Xen は X で綴られており、KVM と同様に、企業市場を対象としていますが、家庭でもビジネスでもセットアップを検討できるオープンソースの仮想化テクノロジです。 KVM に関するいくつかのチュートリアルがあり、導入記事、ストレージとネットワーク (ブリッジ ネットワークを含む) のセットアップと構成の方法、および VirtualBox との競合の解決方法をカバーしています。ここで、Xen についてもう少し学びましょう。同様に、仮想マシンをインストールして実行するために必要な最初の手順、