Redis-quick-guide
Redis-概要
Redisは、オープンソースの高度なキーバリューストアであり、高性能でスケーラブルなWebアプリケーションを構築するための適切なソリューションです。
Redisには、それを際立たせる3つの主な特性があります。
- Redisは、永続化のためだけにディスクを使用して、データベースを完全にメモリに保持します。
- 多くのキーと値のデータストアと比較すると、Redisには比較的豊富なデータ型のセットがあります。
- Redisは、任意の数のスレーブにデータを複製できます。
Redisの利点
以下は、Redisの特定の利点です。
- 非常に高速-Redisは非常に高速で、1秒あたり約110000セット、1秒あたり約81000 GETを実行できます。
- 豊富なデータ型をサポート-Redisは、リスト、セット、ソートされたセット、ハッシュなど、開発者がすでに知っているほとんどのデータ型をネイティブにサポートします。 これにより、どのデータタイプでどの問題をより適切に処理できるかがわかるため、さまざまな問題を簡単に解決できます。
- 操作はアトミック-すべてのRedis操作はアトミックであり、2つのクライアントが同時にアクセスした場合、Redisサーバーは更新された値を受け取ります。
- マルチユーティリティツール-Redisはマルチユーティリティツールであり、キャッシング、メッセージングキュー(Redisがネイティブにパブリッシュ/サブスクライブをサポート)、アプリケーション内の短命データなど、多くのユースケースで使用できます。 Webアプリケーションセッション、Webページヒットカウントなどとして。
Redisと他のKey-Valueストア
- Redisはキーと値のDBの異なる進化パスであり、値はより複雑なデータ型を含むことができ、それらのデータ型に対してアトミック操作が定義されています。
- Redisはメモリ内データベースですが、ディスクデータベース上で永続的であるため、メモリよりも大きくできないデータセットの制限で非常に高い書き込みおよび読み取り速度が達成される別のトレードオフを表します。
- インメモリデータベースのもう1つの利点は、ディスク上の同じデータ構造と比較して、複雑なデータ構造のメモリ表現の操作がはるかに簡単であることです。 したがって、Redisは内部の複雑さをほとんど伴わずに多くのことを実行できます。
Redis-環境
この章では、Redisの環境設定について学習します。
UbuntuにRedisをインストールする
UbuntuにRedisをインストールするには、ターミナルに移動し、次のコマンドを入力します-
$sudo apt-get update
$sudo apt-get install redis-server
これにより、Redisがマシンにインストールされます。
Redisを開始
$redis-server
Redisが機能しているかどうかを確認する
$redis-cli
これにより、redisプロンプトが開きます。
redis 127.0.0.1:6379>
上記のプロンプトで、 127.0.0.1 はマシンのIPアドレスであり、 6379 はRedisサーバーが実行されているポートです。 次に、次の PING コマンドを入力します。
redis 127.0.0.1:6379> ping
PONG
これは、Redisがマシンに正常にインストールされたことを示しています。
UbuntuにRedis Desktop Managerをインストールする
UbuntuにRedisデスクトップマネージャーをインストールするには、https://redisdesktop.com/downloadからパッケージをダウンロードするだけです
ダウンロードしたパッケージを開いてインストールします。
Redisデスクトップマネージャーは、Redisのキーとデータを管理するUIを提供します。
Redis-設定
Redisには、Redisのルートディレクトリにある構成ファイル(redis.conf)があります。 ただし、Redis CONFIG コマンドですべてのRedis設定を取得および設定できます。
構文
以下は、Redis CONFIG コマンドの基本構文です。
redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME
例
redis 127.0.0.1:6379> CONFIG GET loglevel
1) "loglevel"
2) "notice"
すべての構成設定を取得するには、CONFIG_SETTING_NAMEの代わりに*を使用します
例
redis 127.0.0.1:6379> CONFIG GET *
1) "dbfilename"
2) "dump.rdb"
3) "requirepass"
4) ""
5) "masterauth"
6) ""
7) "unixsocket"
8) ""
9) "logfile"
10) ""
11) "pidfile"
12) "/var/run/redis.pid"
13) "maxmemory"
14) "0"
15) "maxmemory-samples"
16) "3"
17) "timeout"
18) "0"
19) "tcp-keepalive"
20) "0"
21) "auto-aof-rewrite-percentage"
22) "100"
23) "auto-aof-rewrite-min-size"
24) "67108864"
25) "hash-max-ziplist-entries"
26) "512"
27) "hash-max-ziplist-value"
28) "64"
29) "list-max-ziplist-entries"
30) "512"
31) "list-max-ziplist-value"
32) "64"
33) "set-max-intset-entries"
34) "512"
35) "zset-max-ziplist-entries"
36) "128"
37) "zset-max-ziplist-value"
38) "64"
39) "hll-sparse-max-bytes"
40) "3000"
41) "lua-time-limit"
42) "5000"
43) "slowlog-log-slower-than"
44) "10000"
45) "latency-monitor-threshold"
46) "0"
47) "slowlog-max-len"
48) "128"
49) "port"
50) "6379"
51) "tcp-backlog"
52) "511"
53) "databases"
54) "16"
55) "repl-ping-slave-period"
56) "10"
57) "repl-timeout"
58) "60"
59) "repl-backlog-size"
60) "1048576"
61) "repl-backlog-ttl"
62) "3600"
63) "maxclients"
64) "4064"
65) "watchdog-period"
66) "0"
67) "slave-priority"
68) "100"
69) "min-slaves-to-write"
70) "0"
71) "min-slaves-max-lag"
72) "10"
73) "hz"
74) "10"
75) "no-appendfsync-on-rewrite"
76) "no"
77) "slave-serve-stale-data"
78) "yes"
79) "slave-read-only"
80) "yes"
81) "stop-writes-on-bgsave-error"
82) "yes"
83) "daemonize"
84) "no"
85) "rdbcompression"
86) "yes"
87) "rdbchecksum"
88) "yes"
89) "activerehashing"
90) "yes"
91) "repl-disable-tcp-nodelay"
92) "no"
93) "aof-rewrite-incremental-fsync"
94) "yes"
95) "appendonly"
96) "no"
97) "dir"
98) "/home/deepak/Downloads/redis-2.8.13/src"
99) "maxmemory-policy"
100) "volatile-lru"
101) "appendfsync"
102) "everysec"
103) "save"
104) "3600 1 300 100 60 10000"
105) "loglevel"
106) "notice"
107) "client-output-buffer-limit"
108) "normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60"
109) "unixsocketperm"
110) "0"
111) "slaveof"
112) ""
113) "notify-keyspace-events"
114) ""
115) "bind"
116) ""
設定を編集
構成を更新するには、 redis.conf ファイルを直接編集するか、 CONFIG set コマンドで構成を更新できます。
構文
以下は CONFIG SET コマンドの基本的な構文です。
redis 127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE
例
redis 127.0.0.1:6379> CONFIG SET loglevel "notice"
OK
redis 127.0.0.1:6379> CONFIG GET loglevel
1) "loglevel"
2) "notice"
Redis-データ型
Redisは5種類のデータ型をサポートしています。
文字列
Redis文字列は一連のバイトです。 Redisの文字列はバイナリセーフです。つまり、特殊な終端文字によって決定されない既知の長さを持っています。 したがって、1つの文字列に最大512メガバイトを格納できます。
例
redis 127.0.0.1:6379> SET name "finddevguides"
OK
redis 127.0.0.1:6379> GET name
"finddevguides"
上記の例では、 SET と GET はRedisコマンド、 name はRedisで使用されるキー、 finddevguides はRedisに保存されている文字列値です。
注-文字列値の最大長は512メガバイトです。
ハッシュ
Redisハッシュは、キーと値のペアのコレクションです。 Redisハッシュは、文字列フィールドと文字列値の間のマップです。 したがって、オブジェクトを表すために使用されます。
例
redis 127.0.0.1:6379> HMSET user:1 username finddevguides password
finddevguides points 200
OK
redis 127.0.0.1:6379> HGETALL user:1
1) "username"
2) "finddevguides"
3) "password"
4) "finddevguides"
5) "points"
6) "200"
上記の例では、ハッシュデータタイプを使用して、ユーザーの基本情報を含むユーザーのオブジェクトを格納します。 ここで、 HMSET、HGETALL はRedisのコマンドであり、 user − 1 はキーです。
すべてのハッシュは、最大2 ^ 32 ^-1つのフィールドと値のペア(40億を超える)を保存できます。
リスト
Redisリストは、単に文字列のリストであり、挿入順でソートされています。 ヘッドまたはテールのRedisリストに要素を追加できます。
例
redis 127.0.0.1:6379> lpush tutoriallist redis
(integer) 1
redis 127.0.0.1:6379> lpush tutoriallist mongodb
(integer) 2
redis 127.0.0.1:6379> lpush tutoriallist rabitmq
(integer) 3
redis 127.0.0.1:6379> lrange tutoriallist 0 10
1) "rabitmq"
2) "mongodb"
3) "redis"
リストの最大長は2 ^ 32 ^-1要素です(4294967295、リストあたり40億を超える要素)。
Sets
Redisセットは、文字列の順序付けられていないコレクションです。 Redisでは、O(1)時間の複雑さでメンバーの追加、削除、およびメンバーの存在をテストできます。
例
redis 127.0.0.1:6379> sadd tutoriallist redis
(integer) 1
redis 127.0.0.1:6379> sadd tutoriallist mongodb
(integer) 1
redis 127.0.0.1:6379> sadd tutoriallist rabitmq
(integer) 1
redis 127.0.0.1:6379> sadd tutoriallist rabitmq
(integer) 0
redis 127.0.0.1:6379> smembers tutoriallist
1) "rabitmq"
2) "mongodb"
3) "redis"
注-上記の例では、 rabitmq が2回追加されますが、セットの一意のプロパティにより、1回だけ追加されます。
セットのメンバーの最大数は2 ^ 32 ^-1です(4294967295、セットあたり40億を超えるメンバー)。
ソートセット
Redis並べ替えセットは、文字列の繰り返しのないコレクションであるRedisセットに似ています。 違いは、ソートされたセットのすべてのメンバーがスコアに関連付けられていることです。スコアは、ソートされたセットを最小のスコアから最大のスコアの順に並べるために使用されます。 メンバーは一意ですが、スコアは繰り返される場合があります。
例
redis 127.0.0.1:6379> zadd tutoriallist 0 redis
(integer) 1
redis 127.0.0.1:6379> zadd tutoriallist 0 mongodb
(integer) 1
redis 127.0.0.1:6379> zadd tutoriallist 0 rabitmq
(integer) 1
redis 127.0.0.1:6379> zadd tutoriallist 0 rabitmq
(integer) 0
redis 127.0.0.1:6379> ZRANGEBYSCORE tutoriallist 0 1000
1) "redis"
2) "mongodb"
3) "rabitmq"
Redis-コマンド
Redisコマンドは、Redisサーバーでいくつかの操作を実行するために使用されます。
Redisサーバーでコマンドを実行するには、Redisクライアントが必要です。 Redisクライアントは、以前にインストールしたRedisパッケージで利用できます。
構文
以下は、Redisクライアントの基本的な構文です。
$redis-cli
例
次の例は、Redisクライアントを起動する方法を説明しています。
Redisクライアントを起動するには、ターミナルを開き、コマンド redis-cli を入力します。 これにより、ローカルサーバーに接続され、任意のコマンドを実行できるようになります。
$redis-cli
redis 127.0.0.1:6379>
redis 127.0.0.1:6379> PING
PONG
上記の例では、ローカルマシンで実行されているRedisサーバーに接続し、サーバーが実行中かどうかを確認するコマンド PING を実行します。
リモートサーバーでコマンドを実行する
Redisリモートサーバーでコマンドを実行するには、同じクライアント redis-cli でサーバーに接続する必要があります
構文
$ redis-cli -h host -p port -a password
例
次の例は、ホスト127.0.0.1、ポート6379で実行され、パスワードがmypassであるRedisリモートサーバーに接続する方法を示しています。
$redis-cli -h 127.0.0.1 -p 6379 -a "mypass"
redis 127.0.0.1:6379>
redis 127.0.0.1:6379> PING
PONG
Redis-キー
Redisキーコマンドは、Redisでキーを管理するために使用されます。 以下は、redisキーコマンドを使用するための構文です。
構文
redis 127.0.0.1:6379> COMMAND KEY_NAME
例
redis 127.0.0.1:6379> SET finddevguides redis
OK
redis 127.0.0.1:6379> DEL finddevguides
(integer) 1
上記の例では、 DEL がコマンドで、 finddevguides がキーです。 キーが削除されると、コマンドの出力は(整数)1になり、そうでない場合は(整数)0になります。
Redis Keysコマンド
次の表に、キーに関連するいくつかの基本的なコマンドを示します。
Sr.No | Command & Description |
---|---|
1 |
このコマンドは、キーが存在する場合は削除します。 |
2 |
このコマンドは、指定されたキーに格納されている値のシリアル化されたバージョンを返します。 |
3 |
このコマンドは、キーが存在するかどうかを確認します。 |
4 |
EXPIRE key seconds 指定された時間の後、キーの有効期限を設定します。 |
5 |
指定された時間の後、キーの有効期限を設定します。 ここでの時間はUnixタイムスタンプ形式です。 |
6 |
キーの有効期限をミリ秒で設定します。 |
7 |
PEXPIREAT key milliseconds-timestamp ミリ秒として指定されたUnixタイムスタンプのキーの有効期限を設定します。 |
8 |
指定されたパターンに一致するすべてのキーを検索します。 |
9 |
キーを別のデータベースに移動します。 |
10 |
キーから有効期限を削除します。 |
11 |
キーの有効期限の残り時間をミリ秒単位で取得します。 |
12 |
キーの有効期限の残り時間を取得します。 |
13 |
Redisからランダムキーを返します。 |
14 |
キー名を変更します。 |
15 |
新しいキーが存在しない場合、キーの名前を変更します。 |
16 |
キーに保存されている値のデータ型を返します。 |
Redis-ストリング
Redisの文字列値を管理するには、Redis文字列コマンドを使用します。 以下は、Redis文字列コマンドを使用するための構文です。
構文
redis 127.0.0.1:6379> COMMAND KEY_NAME
例
redis 127.0.0.1:6379> SET finddevguides redis
OK
redis 127.0.0.1:6379> GET finddevguides
"redis"
上記の例では、 SET と GET がコマンドであり、 finddevguides がキーです。
Redis Stringsコマンド
次の表に、Redisで文字列を管理するためのいくつかの基本的なコマンドを示します。
Sr.No | Command & Description |
---|---|
1 |
このコマンドは、指定されたキーに値を設定します。 |
2 |
キーの値を取得します。 |
3 |
キーに格納されている文字列の部分文字列を取得します。 |
4 |
キーの文字列値を設定し、その古い値を返します。 |
5 |
キーに格納されている文字列値のオフセットのビット値を返します。 |
6 |
指定されたすべてのキーの値を取得します |
7 |
キーに格納されている文字列値のオフセットのビットを設定またはクリアします |
8 |
キーの有効期限で値を設定します |
9 |
キーが存在しない場合にのみ、キーの値を設定します |
10 |
指定されたオフセットで始まるキーの文字列の一部を上書きします |
11 |
キーに保存されている値の長さを取得します |
12 |
複数のキーを複数の値に設定します |
13 |
MSETNX key value [key value …] キーが存在しない場合にのみ、複数のキーを複数の値に設定します |
14 |
キーの値と有効期限をミリ秒で設定します |
15 |
キーの整数値を1つ増やします |
16 |
指定された量だけキーの整数値をインクリメントします |
17 |
指定された量だけキーのフロート値をインクリメントします |
18 |
キーの整数値を1減らします |
19 |
指定された数だけキーの整数値をデクリメントします |
20 |
キーに値を追加します |
Redis-ハッシュ
Redisハッシュは、文字列フィールドと文字列値の間のマップです。 したがって、これらはオブジェクトを表すのに最適なデータ型です。
Redisでは、すべてのハッシュに最大40億を超えるフィールドと値のペアを保存できます。
例
redis 127.0.0.1:6379> HMSET finddevguides name "redis tutorial"
description "redis basic commands for caching" likes 20 visitors 23000
OK
redis 127.0.0.1:6379> HGETALL finddevguides
1) "name"
2) "redis tutorial"
3) "description"
4) "redis basic commands for caching"
5) "likes"
6) "20"
7) "visitors"
8) "23000"
上記の例では、「finddevguides」という名前のハッシュにRedisチュートリアルの詳細(名前、説明、いいね、訪問者)を設定しています。
Redisハッシュコマンド
次の表に、ハッシュに関連するいくつかの基本的なコマンドを示します。
Sr.No | Command & Description |
---|---|
1 |
1つ以上のハッシュフィールドを削除します。 |
2 |
ハッシュフィールドが存在するかどうかを判断します。 |
3 |
指定されたキーに格納されているハッシュフィールドの値を取得します。 |
4 |
指定されたキーでハッシュに保存されているすべてのフィールドと値を取得します |
5 |
ハッシュフィールドの整数値を指定された数だけインクリメントします |
6 |
HINCRBYFLOAT key field increment ハッシュフィールドのfloat値を指定された量だけインクリメントします |
7 |
ハッシュ内のすべてのフィールドを取得します |
8 |
ハッシュ内のフィールドの数を取得します |
9 |
指定されたすべてのハッシュフィールドの値を取得します |
10 |
HMSET key field1 value1 [field2 value2] 複数のハッシュフィールドを複数の値に設定します |
11 |
ハッシュフィールドの文字列値を設定します |
12 |
フィールドが存在しない場合にのみ、ハッシュフィールドの値を設定します |
13 |
ハッシュ内のすべての値を取得します |
14 |
HSCAN key cursor [MATCH pattern [COUNT count]] ハッシュフィールドと関連する値を増分的に繰り返します |
Redis-リスト
Redisリストは、単に文字列のリストであり、挿入順でソートされています。 リストの先頭または末尾のRedisリストに要素を追加できます。
リストの最大長は2 ^ 32 ^-1要素です(4294967295、リストあたり40億を超える要素)。
例
redis 127.0.0.1:6379> LPUSH tutorials redis
(integer) 1
redis 127.0.0.1:6379> LPUSH tutorials mongodb
(integer) 2
redis 127.0.0.1:6379> LPUSH tutorials mysql
(integer) 3
redis 127.0.0.1:6379> LRANGE tutorials 0 10
1) "mysql"
2) "mongodb"
3) "redis"
上記の例では、コマンド LPUSH によって、「tutorials」という名前のRedisリストに3つの値が挿入されます。
Redisリストコマンド
次の表に、リストに関連するいくつかの基本的なコマンドを示します。
Sr.No | Command & Description |
---|---|
1 |
BLPOP key1 [key2 timeout] リストの最初の要素を削除して取得するか、使用可能になるまでブロックします |
2 |
BRPOP key1 [key2 timeout] リスト内の最後の要素を削除して取得するか、使用可能になるまでブロックします |
3 |
BRPOPLPUSH source destination timeout リストから値をポップし、別のリストにプッシュして返します。または、いずれかが使用可能になるまでブロックします |
4 |
インデックスでリストから要素を取得します |
5 | link:/redis/lists_linsert[LINSERT key BEFORE |
AFTER pivot value] リスト内の別の要素の前または後に要素を挿入します |
6 |
リストの長さを取得します |
7 |
リストの最初の要素を削除して取得します |
8 |
1つまたは複数の値をリストに追加します |
9 |
リストが存在する場合のみ、リストに値を付加します |
10 |
リストから要素の範囲を取得します |
11 |
リストから要素を削除します |
12 |
リスト内の要素の値をインデックスで設定します |
13 |
リストを指定された範囲にトリミングします |
14 |
リストの最後の要素を削除して取得します |
15 |
リストの最後の要素を削除し、別のリストに追加して返します |
16 |
1つまたは複数の値をリストに追加します |
17 |
Redis-セット
Redisセットは、一意の文字列の順序付けられていないコレクションです。 ユニークは、セットがキー内のデータの繰り返しを許可しないことを意味します。
Redisセットでは、O(1)のメンバーの存在を追加、削除、およびテストします(セット内に含まれる要素の数に関係なく一定の時間)。 リストの最大長は2 ^ 32 ^-1要素です(4294967295、セットあたり40億を超える要素)。
例
redis 127.0.0.1:6379> SADD tutorials redis
(integer) 1
redis 127.0.0.1:6379> SADD tutorials mongodb
(integer) 1
redis 127.0.0.1:6379> SADD tutorials mysql
(integer) 1
redis 127.0.0.1:6379> SADD tutorials mysql
(integer) 0
redis 127.0.0.1:6379> SMEMBERS tutorials
1) "mysql"
2) "mongodb"
3) "redis"
上記の例では、コマンド SADD によって、「tutorials」という名前のRedisセットに3つの値が挿入されます。
Redis Setsコマンド
次の表に、セットに関連するいくつかの基本的なコマンドを示します。
Sr.No | Command & Description |
---|---|
1 |
1つ以上のメンバーをセットに追加します |
2 |
セット内のメンバーの数を取得します |
3 |
複数のセットを減算します |
4 |
SDIFFSTORE destination key1 [key2] 複数のセットを減算し、結果のセットをキーに保存します |
5 |
複数のセットを交差させる |
6 |
SINTERSTORE destination key1 [key2] 複数のセットを交差させ、結果セットをキーに保存します |
7 |
指定された値がセットのメンバーかどうかを判別します |
8 |
セット内のすべてのメンバーを取得します |
9 |
SMOVE source destination member メンバーをあるセットから別のセットに移動します |
10 |
セットからランダムなメンバーを削除して返します |
11 |
セットから1つまたは複数のランダムメンバーを取得します |
12 |
セットから1つ以上のメンバーを削除します |
13 |
複数のセットを追加します |
14 |
SUNIONSTORE destination key1 [key2] 複数のセットを追加し、結果セットをキーに保存します |
15 |
SSCAN key cursor [MATCH pattern [COUNT count]] セット要素を増分的に反復します |
Redis-ソートセット
Redis並べ替えセットは、Redisセットに似ており、セットに格納されている値の一意の機能を備えています。 違いは、ソートされたセットのすべてのメンバーがスコアに関連付けられていることです。スコアは、ソートされたセットを最小のスコアから最大のスコアの順に並べるために使用されます。
Redisソートセットで、追加、削除、およびO(1)のメンバーの存在のテスト(セット内に含まれる要素の数に関係なく一定の時間)。 リストの最大長は2 ^ 32 ^-1要素です(4294967295、セットあたり40億を超える要素)。
例
redis 127.0.0.1:6379> ZADD tutorials 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD tutorials 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD tutorials 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD tutorials 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD tutorials 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE tutorials 0 10 WITHSCORES
1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"
上記の例では、コマンド ZADD によって、「tutorials」という名前のRedisソートセットにスコア付きの3つの値が挿入されます。
Redis Sorted Setsコマンド
次の表に、ソートされたセットに関連するいくつかの基本的なコマンドを示します。
Sr.No | Command & Description |
---|---|
1 |
ZADD key score1 member1 [score2 member2] ソートされたセットに1つ以上のメンバーを追加するか、既に存在する場合はそのスコアを更新します |
2 |
ソートされたセット内のメンバーの数を取得します |
3 |
指定された値内のスコアでソートされたセットのメンバーをカウントします |
4 |
ソートされたセットのメンバーのスコアを増分します |
5 |
ZINTERSTORE destination numkeys key [key …] 複数のソートされたセットを交差させ、結果のソートされたセットを新しいキーに保存します |
6 |
特定の辞書編集範囲内のソートされたセットのメンバーの数をカウントします |
7 |
ZRANGE key start stop [WITHSCORES] ソートされたセットのメンバーの範囲をインデックスで返します |
8 |
ZRANGEBYLEX key min max [LIMIT offset count] 辞書式範囲ごとに、ソートされたセットのメンバーの範囲を返します |
9 |
ZRANGEBYSCORE key min max [WITHSCORES [LIMIT]] ソートされたセットのメンバーの範囲をスコアで返します |
10 |
ソートされたセット内のメンバーのインデックスを決定します |
11 |
ソートされたセットから1つ以上のメンバーを削除します |
12 |
指定された辞書編集範囲内のソートされたセット内のすべてのメンバーを削除します |
13 |
ZREMRANGEBYRANK key start stop 指定されたインデックス内のソートされたセットのすべてのメンバーを削除します |
14 |
指定されたスコア内のソートされたセットのすべてのメンバーを削除します |
15 |
ZREVRANGE key start stop [WITHSCORES] ソートされたセットのメンバーの範囲を、スコアを高から低に並べたインデックスで返します |
16 |
ZREVRANGEBYSCORE key max min [WITHSCORES] スコアごとに、ソートされたセットのメンバーの範囲を、スコアの高い順に並べて返します |
17 |
ソートされたセット内のメンバーのインデックスを決定します。スコアは高い順に並べられます |
18 |
ソートされたセット内の指定されたメンバーに関連付けられたスコアを取得します |
19 |
ZUNIONSTORE destination numkeys key [key …] 複数のソートセットを追加し、結果のソートセットを新しいキーに保存します |
20 |
ZSCAN key cursor [MATCH pattern [COUNT count]] ソートされたセット要素と関連するスコアを増分的に繰り返します |
Redis-HyperLogLog
Redis HyperLogLogは、一定の少量のメモリのみを使用して、セット内の一意の要素の数を概算するために、ランダム化を使用するアルゴリズムです。
HyperLogLogは、標準エラー0.81%でキーごとに約12 KBの非常に少量のメモリを使用しても、セットのカーディナリティの非常に優れた近似値を提供します。 2 ^ 64 ^個のアイテムに近づかない限り、カウントできるアイテムの数に制限はありません。
例
次の例は、Redis HyperLogLogの仕組みを説明しています。
redis 127.0.0.1:6379> PFADD tutorials "redis"
1) (integer) 1
redis 127.0.0.1:6379> PFADD tutorials "mongodb"
1) (integer) 1
redis 127.0.0.1:6379> PFADD tutorials "mysql"
1) (integer) 1
redis 127.0.0.1:6379> PFCOUNT tutorials
(integer) 3
Redis HyperLogLogコマンド
次の表に、Redis HyperLogLogに関連するいくつかの基本的なコマンドを示します。
Sr.No | Command & Description |
---|---|
1 |
PFADD key element [element …] 指定した要素を指定したHyperLogLogに追加します。 |
2 |
キーでHyperLogLogによって観察されたセットの近似カーディナリティを返します。 |
3 |
PFMERGE destkey sourcekey [sourcekey …] N個の異なるHyperLogLogを単一のHyperLogLogにマージします。 |
Redis-発行購読
Redis Pub/Subは、送信者(パブリッシャーと呼ばれるredisの用語)がメッセージを送信し、受信者(サブスクライバー)がメッセージを受信するメッセージングシステムを実装します。 メッセージが転送されるリンクは channel と呼ばれます。
Redisでは、クライアントは任意の数のチャンネルをサブスクライブできます。
例
次の例は、サブスクライバーの公開の概念の仕組みを説明しています。 次の例では、1人のクライアントが「redisChat」という名前のチャンネルを購読しています。
redis 127.0.0.1:6379> SUBSCRIBE redisChat
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "redisChat"
3) (integer) 1
現在、2つのクライアントが「redisChat」という名前の同じチャネルでメッセージを公開しており、上記のサブスクライブされたクライアントがメッセージを受信しています。
redis 127.0.0.1:6379> PUBLISH redisChat "Redis is a great caching technique"
(integer) 1
redis 127.0.0.1:6379> PUBLISH redisChat "Learn redis by tutorials point"
(integer) 1
1) "message"
2) "redisChat"
3) "Redis is a great caching technique"
1) "message"
2) "redisChat"
3) "Learn redis by tutorials point"
Redis PubSubコマンド
次の表に、Redis Pub/Subに関連するいくつかの基本的なコマンドを示します。
Sr.No | Command & Description |
---|---|
1 |
PSUBSCRIBE pattern [pattern …] 指定されたパターンに一致するチャンネルにサブスクライブします。 |
2 |
PUBSUB subcommand [argument [argument …]] Pub/Subシステムの状態を通知します。 たとえば、サーバーでアクティブになっているクライアント。 |
3 |
チャンネルにメッセージを投稿します。 |
4 |
PUNSUBSCRIBE [pattern [pattern …]] 指定されたパターンに一致するチャネルに投稿されたメッセージのリッスンを停止します。 |
5 |
SUBSCRIBE channel [channel …] 指定されたチャネルに発行されたメッセージをリッスンします。 |
6 |
UNSUBSCRIBE [channel [channel …]] 指定されたチャネルに投稿されたメッセージの受信を停止します。 |
Redis-トランザクション
Redisトランザクションでは、コマンドのグループを単一のステップで実行できます。 トランザクションの2つのプロパティは次のとおりです。
- トランザクション内のすべてのコマンドは、単一の独立した操作として順次実行されます。 別のクライアントによって発行されたリクエストが、Redisトランザクションの実行中に処理されることはありません。
- Redisトランザクションもアトミックです。 アトミックとは、すべてのコマンドが処理されるか、処理されないことを意味します。
サンプル
Redisトランザクションは、コマンド MULTI によって開始されます。その後、トランザクションで実行するコマンドのリストを渡す必要があります。その後、トランザクション全体が EXEC コマンドによって実行されます。
redis 127.0.0.1:6379> MULTI
OK
List of commands here
redis 127.0.0.1:6379> EXEC
例
次の例は、Redisトランザクションを開始および実行する方法を説明しています。
redis 127.0.0.1:6379> MULTI
OK
redis 127.0.0.1:6379> SET tutorial redis
QUEUED
redis 127.0.0.1:6379> GET tutorial
QUEUED
redis 127.0.0.1:6379> INCR visitors
QUEUED
redis 127.0.0.1:6379> EXEC
1) OK
2) "redis"
3) (integer) 1
Redisトランザクションコマンド
次の表は、Redisトランザクションに関連するいくつかの基本的なコマンドを示しています。
Sr.No | Command & Description |
---|---|
1 |
MULTIの後に発行されたすべてのコマンドを破棄します |
2 |
MULTIの後に発行されたすべてのコマンドを実行します |
3 |
トランザクションブロックの開始をマークします |
4 |
監視されているすべてのキーを忘れる |
5 |
指定されたキーを監視して、MULTI/EXECブロックの実行を決定します |
Redis-スクリプト
Redisスクリプトは、Luaインタープリターを使用してスクリプトを評価するために使用されます。 バージョン2.6.0以降、Redisに組み込まれています。 スクリプトに使用されるコマンドは EVAL コマンドです。
構文
以下は、 EVAL コマンドの基本的な構文です。
redis 127.0.0.1:6379> EVAL script numkeys key [key ...] arg [arg ...]
例
次の例は、Redisスクリプトの仕組みを説明しています。
redis 127.0.0.1:6379> EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1
key2 first second
1) "key1"
2) "key2"
3) "first"
4) "second"
Redisスクリプトコマンド
次の表に、Redisスクリプトに関連するいくつかの基本的なコマンドを示します。
Sr.No | Command & Description |
---|---|
1 |
EVAL script numkeys key [key … arg [arg …]] Luaスクリプトを実行します。 |
2 |
EVALSHA sha1 numkeys key [key … arg [arg …]] Luaスクリプトを実行します。 |
3 |
SCRIPT EXISTS script [script …] スクリプトキャッシュ内のスクリプトの存在を確認します。 |
4 |
スクリプトキャッシュからすべてのスクリプトを削除します。 |
5 |
現在実行中のスクリプトを強制終了します。 |
6 |
指定されたLuaスクリプトをスクリプトキャッシュにロードします。 |
Redis-接続
Redis接続コマンドは、基本的にRedisサーバーとのクライアント接続を管理するために使用されます。
例
次の例では、クライアントがRedisサーバーに対して自身を認証し、サーバーが実行されているかどうかを確認する方法について説明します。
redis 127.0.0.1:6379> AUTH "password"
OK
redis 127.0.0.1:6379> PING
PONG
Redis接続コマンド
次の表に、Redis接続に関連するいくつかの基本的なコマンドを示します。
Sr.No | Command & Description |
---|---|
1 |
指定されたパスワードでサーバーを認証します |
2 |
指定された文字列を出力します |
3 |
サーバーが実行中かどうかを確認します |
4 |
現在の接続を閉じます |
5 |
現在の接続用に選択したデータベースを変更します |
Redis-サーバー
Redisサーバーのコマンドは、基本的にRedisサーバーの管理に使用されます。
例
次の例は、サーバーに関するすべての統計と情報を取得する方法を説明しています。
redis 127.0.0.1:6379> INFO
# Server
redis_version:2.8.13
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:c2238b38b1edb0e2
redis_mode:standalone
os:Linux 3.5.0-48-generic x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.7.2
process_id:3856
run_id:0e61abd297771de3fe812a3c21027732ac9f41fe
tcp_port:6379
uptime_in_seconds:11554
uptime_in_days:0 hz:10
lru_clock:16651447
config_file:
# Clients
connected_clients:1
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0
# Memory
used_memory:589016
used_memory_human:575.21K
used_memory_rss:2461696
used_memory_peak:667312
used_memory_peak_human:651.67K
used_memory_lua:33792
mem_fragmentation_ratio:4.18
mem_allocator:jemalloc-3.6.0
# Persistence
loading:0
rdb_changes_since_last_save:3
rdb_bgsave_in_progress:0
rdb_last_save_time:1409158561
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:0
rdb_current_bgsave_time_sec:-1
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
# Stats
total_connections_received:24
total_commands_processed:294
instantaneous_ops_per_sec:0
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
evicted_keys:0
keyspace_hits:41
keyspace_misses:82
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:264
# Replication
role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
# CPU
used_cpu_sys:10.49
used_cpu_user:4.96
used_cpu_sys_children:0.00
used_cpu_user_children:0.01
# Keyspace
db0:keys = 94,expires = 1,avg_ttl = 41638810
db1:keys = 1,expires = 0,avg_ttl = 0
db3:keys = 1,expires = 0,avg_ttl = 0
Redisサーバーのコマンド
次の表に、Redisサーバーに関連するいくつかの基本的なコマンドを示します。
Sr.No | Command & Description |
---|---|
1 |
追加専用ファイルを非同期で書き換えます |
2 |
データセットを非同期的にディスクに保存します |
3 |
CLIENT KILL [ip:port [ID client-id]] クライアントの接続を強制終了します |
4 |
サーバーへのクライアント接続のリストを取得します |
5 |
現在の接続の名前を取得します |
6 |
指定された時間、クライアントからのコマンドの処理を停止します |
7 |
CLIENT SETNAME connection-name 現在の接続名を設定します |
8 |
クラスタスロットの配列をノードマッピングに取得します |
9 |
Redisコマンドの詳細の配列を取得します |
10 |
Redisコマンドの総数を取得します |
11 |
完全なRedisコマンドを指定してキーを抽出します |
12 |
データセットを非同期的にディスクに保存します |
13 |
COMMAND INFO command-name [command-name …] 特定のRedisコマンドの詳細の配列を取得します |
14 |
構成パラメーターの値を取得します |
15 |
メモリ内の構成で構成ファイルを書き換えます |
16 |
構成パラメーターを指定された値に設定します |
17 |
INFOによって返された統計をリセットします |
18 |
選択したデータベースのキーの数を返します |
19 |
キーに関するデバッグ情報を取得します |
20 |
サーバーをクラッシュさせます |
21 |
すべてのデータベースからすべてのキーを削除します |
22 |
現在のデータベースからすべてのキーを削除します |
23 |
サーバーに関する情報と統計を取得します |
24 |
最後に成功したディスクへの保存のUNIXタイムスタンプを取得します |
25 |
サーバーが受信したすべてのリクエストをリアルタイムでリッスンします |
26 |
レプリケーションのコンテキストでインスタンスの役割を返します |
27 |
データセットをディスクに同期的に保存します |
28 |
SHUTDOWN [NOSAVE [SAVE]] データセットをディスクに同期的に保存してから、サーバーをシャットダウンします |
29 |
サーバーを別のインスタンスのスレーブにするか、マスターとして昇格させます |
30 |
Redisスロークエリログを管理します |
31 |
レプリケーションに使用されるコマンド |
32 |
現在のサーバー時間を返します |
Redis-バックアップ
Redis SAVE コマンドは、現在のRedisデータベースのバックアップを作成するために使用されます。
構文
以下は、redis SAVE コマンドの基本的な構文です。
127.0.0.1:6379> SAVE
例
次の例では、現在のデータベースのバックアップを作成します。
127.0.0.1:6379> SAVE
OK
このコマンドは、Redisディレクトリに dump.rdb ファイルを作成します。
Redisデータの復元
Redisデータを復元するには、Redisバックアップファイル(dump.rdb)をRedisディレクトリに移動し、サーバーを起動します。 Redisディレクトリを取得するには、以下に示すようにRedisの CONFIG コマンドを使用します。
127.0.0.1:6379> CONFIG get dir
1) "dir"
2) "/user/finddevguides/redis-2.8.13/src"
上記のコマンドの出力で、 /user/finddevguides/redis-2.8.13/src はRedisサーバーがインストールされているディレクトリです。
Bgsave
Redisバックアップを作成するには、代替コマンド BGSAVE も使用できます。 このコマンドは、バックアッププロセスを開始し、これをバックグラウンドで実行します。
例
127.0.0.1:6379> BGSAVE
Background saving started
Redis-セキュリティ
Redisデータベースはセキュリティで保護されているため、接続を行うクライアントはコマンドを実行する前に認証する必要があります。 Redisを保護するには、設定ファイルでパスワードを設定する必要があります。
例
次の例は、Redisインスタンスを保護する手順を示しています。
127.0.0.1:6379> CONFIG get requirepass
1) "requirepass"
2) ""
デフォルトでは、このプロパティは空白です。つまり、このインスタンスにはパスワードが設定されていません。 次のコマンドを実行して、このプロパティを変更できます。
127.0.0.1:6379> CONFIG set requirepass "finddevguides"
OK
127.0.0.1:6379> CONFIG get requirepass
1) "requirepass"
2) "finddevguides"
パスワードを設定した後、クライアントが認証なしでコマンドを実行する場合、(エラー)NOAUTH認証が必要。 エラーが返されます。 したがって、クライアントは AUTH コマンドを使用して自分自身を認証する必要があります。
構文
以下は AUTH コマンドの基本的な構文です。
127.0.0.1:6379> AUTH password
例
127.0.0.1:6379> AUTH "finddevguides"
OK
127.0.0.1:6379> SET mykey "Test value"
OK
127.0.0.1:6379> GET mykey
"Test value"
Redis-ベンチマーク
Redisベンチマークは、n個のコマンドを同時に実行してRedisのパフォーマンスを確認するユーティリティです。
構文
以下は、Redisベンチマークの基本的な構文です。
redis-benchmark [option] [option value]
例
次の例では、100000コマンドを呼び出してRedisをチェックします。
redis-benchmark -n 100000
PING_INLINE: 141043.72 requests per second
PING_BULK: 142857.14 requests per second
SET: 141442.72 requests per second
GET: 145348.83 requests per second
INCR: 137362.64 requests per second
LPUSH: 145348.83 requests per second
LPOP: 146198.83 requests per second
SADD: 146198.83 requests per second
SPOP: 149253.73 requests per second
LPUSH (needed to benchmark LRANGE): 148588.42 requests per second
LRANGE_100 (first 100 elements): 58411.21 requests per second
LRANGE_300 (first 300 elements): 21195.42 requests per second
LRANGE_500 (first 450 elements): 14539.11 requests per second
LRANGE_600 (first 600 elements): 10504.20 requests per second
MSET (10 keys): 93283.58 requests per second
以下は、Redisベンチマークで利用可能なオプションのリストです。
Sr.No | Option | Description | Default Value |
---|---|---|---|
1 | -h | Specifies server host name | 127.0.0.1 |
2 | -p | Specifies server port | 6379 |
3 | -s | Specifies server socket | |
4 | -c | Specifies the number of parallel connections | 50 |
5 | -n | Specifies the total number of requests | 10000 |
6 | -d | Specifies data size of SET/GET value in bytes | 2 |
7 | -k | 1=keep alive, 0=reconnect | 1 |
8 | -r | Use random keys for SET/GET/INCR, random values for SADD | |
9 | -p | Pipeline <numreq> requests | 1 |
10 | -h | Specifies server host name | |
11 | -q | Forces Quiet to Redis. Just shows query/sec values | |
12 | --csv | Output in CSV format | |
13 | -l | Generates loop, Run the tests forever | |
14 | -t | Only runs the comma-separated list of tests | |
15 | -I | Idle mode. Just opens N idle connections and wait |
例
次の例は、Redisベンチマークユーティリティの複数の使用オプションを示しています。
redis-benchmark -h 127.0.0.1 -p 6379 -t set,lpush -n 100000 -q
SET: 146198.83 requests per second
LPUSH: 145560.41 requests per second
Redis-クライアント接続
Redisは、構成されているリスニングTCPポートとUnixソケット(有効な場合)でクライアントの接続を受け入れます。 新しいクライアント接続が受け入れられると、次の操作が実行されます-
- Redisは多重化および非ブロッキングI/Oを使用するため、クライアントソケットは非ブロッキング状態になります。
- 接続に遅延が生じないようにするために、TCP_NODELAYオプションが設定されています。
- 読み取り可能なファイルイベントが作成されるため、Redisはソケットで新しいデータを読み取れるようになるとすぐにクライアントクエリを収集できます。
クライアントの最大数
Redisの設定(redis.conf)には、Redisに接続できるクライアントの最大数を記述する maxclients というプロパティがあります。
以下は、コマンドの基本的な構文です。
config get maxclients
1) "maxclients"
2) "10000"
デフォルトでは、このプロパティは10000に設定されます(OSのファイル記述子の最大数の制限によります)が、このプロパティは変更できます。
例
次の例では、サーバーの起動中にクライアントの最大数を100000に設定しています。
redis-server --maxclients 100000
クライアントコマンド
Sr.No | Command | Description |
---|---|---|
1 | CLIENT LIST | Returns the list of clients connected to Redis server |
2 | CLIENT SETNAME | Assigns a name to the current connection |
3 | CLIENT GETNAME | Returns the name of the current connection as set by CLIENT SETNAME |
4 | CLIENT PAUSE | This is a connections control command able to suspend all the Redis clients for the specified amount of time (in milliseconds) |
5 | CLIENT KILL | This command closes a given client connection. |
Redis-パイプライン処理
RedisはTCPサーバーであり、要求/応答プロトコルをサポートしています。 Redisでは、要求は次の手順で達成されます-
- クライアントはサーバーにクエリを送信し、サーバーの応答のために、通常はブロックする方法でソケットから読み取ります。
- サーバーはコマンドを処理し、応答をクライアントに送り返します。
パイプライン化の意味
パイプライン処理の基本的な意味は、クライアントが応答をまったく待たずにサーバーに複数の要求を送信でき、最終的に単一のステップで応答を読み取ることです。
例
Redisパイプラインを確認するには、Redisインスタンスを起動して、ターミナルで次のコマンドを入力します。
$(echo -en "PING\r\n SET tutorial redis\r\nGET tutorial\r\nINCR
visitor\r\nINCR visitor\r\nINCR visitor\r\n"; sleep 10) | nc localhost 6379
+PONG
+OK
redis
:1
:2
:3
上記の例では、 PING コマンドを使用してRedis接続を確認します。 値 redis で tutorial という名前の文字列を設定しました。 後で、そのキーの値を取得し、訪問者の数を3回増やします。 その結果、すべてのコマンドがRedisに1回送信され、Redisがすべてのコマンドの出力を1つのステップで提供することがわかります。
パイプライン処理の利点
この手法の利点は、プロトコルのパフォーマンスが大幅に向上することです。 パイプライン化によって得られる高速化は、ローカルホストへの接続の5倍から、低速のインターネット接続で少なくとも100倍までの範囲です。
Redis-パーティショニング
パーティショニングは、データを複数のRedisインスタンスに分割するプロセスであるため、すべてのインスタンスにはキーのサブセットのみが含まれます。
パーティション化の利点
- 多くのコンピューターのメモリの合計を使用して、はるかに大きなデータベースを使用できます。 パーティションを作成しないと、1台のコンピューターがサポートできるメモリの量に制限されます。
- これにより、計算能力を複数のコアと複数のコンピューターに拡張し、ネットワーク帯域幅を複数のコンピューターとネットワークアダプターに拡張できます。
パーティション分割の欠点
- 通常、複数のキーを含む操作はサポートされていません。 たとえば、2つのセットが異なるRedisインスタンスにマッピングされているキーに保存されている場合、それらのセット間の交差を実行することはできません。
- 複数のキーを含むRedisトランザクションは使用できません。
- パーティションの粒度がキーであるため、非常に大きなソートされたセットのような単一の巨大なキーを持つデータセットを分割することはできません。
- パーティショニングを使用すると、データ処理がより複雑になります。 たとえば、複数のRDB/AOFファイルを処理する必要があり、データのバックアップを取得するには、複数のインスタンスとホストから永続性ファイルを集約する必要があります。
- 容量の追加と削除は複雑になる場合があります。 たとえば、Redis Clusterは、実行時にノードを追加および削除する機能を備えたデータのほぼ透過的なリバランスをサポートしています。 ただし、クライアント側のパーティション分割やプロキシなどの他のシステムは、この機能をサポートしていません。 この点で Presharding と呼ばれる手法が役立ちます。
パーティションの種類
Redisでは、2種類のパーティショニングを利用できます。 4つのRedisインスタンス、R0、R1、R2、R3と、user:1、user:2、…などのユーザーを表す多くのキーがあるとします。 などなど。
範囲分割
範囲分割は、オブジェクトの範囲を特定のRedisインスタンスにマッピングすることにより実現されます。 この例では、ID 0からID 10000のユーザーがインスタンスR0に移動し、ID 10001からID 20000のユーザーがインスタンスR1に移動するとします。
ハッシュ分割
このタイプのパーティション分割では、ハッシュ関数(例: モジュラス関数)は、キーを数値に変換するために使用され、その後、データは異なるRedisインスタンスに保存されます。
Redis-Java
JavaプログラムでRedisの使用を開始する前に、Redis JavaドライバーとJavaがマシンにセットアップされていることを確認する必要があります。 マシンにJavaをインストールするためのJavaチュートリアルを確認できます。
インストール
それでは、Redis Javaドライバーのセットアップ方法を見てみましょう。
- パスhttp://repo1.maven.org/maven2/redis/clients/jedis/2.1.0/jedis-2.1.0-sources.jar[*Download jedis.jar *]からjarをダウンロードする必要があります。 必ず最新リリースをダウンロードしてください。
- jedis.jar をクラスパスに含める必要があります。
Redisサーバーに接続する
import redis.clients.jedis.Jedis;
public class RedisJava {
public static void main(String[] args) {
//Connecting to Redis server on localhost
Jedis jedis = new Jedis("localhost");
System.out.println("Connection to server sucessfully");
//check whether server is running or not
System.out.println("Server is running: "+jedis.ping());
}
}
それでは、上記のプログラムをコンパイルして実行し、Redisサーバーへの接続をテストしましょう。 要件に応じてパスを変更できます。 jedis.jar の現在のバージョンが現在のパスで利用可能であると想定しています。
$javac RedisJava.java
$java RedisJava
Connection to server sucessfully
Server is running: PONG
Redis Java文字列の例
import redis.clients.jedis.Jedis;
public class RedisStringJava {
public static void main(String[] args) {
//Connecting to Redis server on localhost
Jedis jedis = new Jedis("localhost");
System.out.println("Connection to server sucessfully");
//set the data in redis string
jedis.set("tutorial-name", "Redis tutorial");
//Get the stored data and print it
System.out.println("Stored string in redis:: "+ jedis.get("tutorial-name"));
}
}
それでは、上記のプログラムをコンパイルして実行しましょう。
$javac RedisStringJava.java
$java RedisStringJava
Connection to server sucessfully
Stored string in redis:: Redis tutorial
Redis Javaリストの例
import redis.clients.jedis.Jedis;
public class RedisListJava {
public static void main(String[] args) {
//Connecting to Redis server on localhost
Jedis jedis = new Jedis("localhost");
System.out.println("Connection to server sucessfully");
//store data in redis list
jedis.lpush("tutorial-list", "Redis");
jedis.lpush("tutorial-list", "Mongodb");
jedis.lpush("tutorial-list", "Mysql");
//Get the stored data and print it
List<String> list = jedis.lrange("tutorial-list", 0 ,5);
for(int i = 0; i<list.size(); i++) {
System.out.println("Stored string in redis:: "+list.get(i));
}
}
}
それでは、上記のプログラムをコンパイルして実行しましょう。
$javac RedisListJava.java
$java RedisListJava
Connection to server sucessfully
Stored string in redis:: Redis
Stored string in redis:: Mongodb
Stored string in redis:: Mysql
Redis Javaキーの例
import redis.clients.jedis.Jedis;
public class RedisKeyJava {
public static void main(String[] args) {
//Connecting to Redis server on localhost
Jedis jedis = new Jedis("localhost");
System.out.println("Connection to server sucessfully");
//store data in redis list
//Get the stored data and print it
List<String> list = jedis.keys("*");
for(int i = 0; i<list.size(); i++) {
System.out.println("List of stored keys:: "+list.get(i));
}
}
}
それでは、上記のプログラムをコンパイルして実行しましょう。
$javac RedisKeyJava.java
$java RedisKeyJava
Connection to server sucessfully
List of stored keys:: tutorial-name
List of stored keys:: tutorial-list
Redis-PHP
PHPプログラムでRedisの使用を開始する前に、Redis PHPドライバーとPHPがマシンにセットアップされていることを確認する必要があります。 マシンにPHPをインストールするためのPHPチュートリアルを確認できます。
インストール
ここで、Redis PHPドライバーのセットアップ方法を確認しましょう。
githubリポジトリhttps://github.com/nicolasff/phpredisからphpredisをダウンロードする必要があります。 ダウンロードしたら、ファイルをphpredisディレクトリに抽出します。 Ubuntuで、次の拡張機能をインストールします。
cd phpredis
sudo phpize
sudo ./configure
sudo make
sudo make install
次に、「modules」フォルダーの内容をコピーしてPHP拡張ディレクトリに貼り付け、 php.ini に次の行を追加します。
extension = redis.so
これで、Redis PHPのインストールが完了しました
Redisサーバーに接続する
<?php
//Connecting to Redis server on localhost
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
echo "Connection to server sucessfully";
//check whether server is running or not
echo "Server is running: ".$redis->ping();
?>
プログラムが実行されると、次の結果が生成されます。
Connection to server sucessfully
Server is running: PONG
Redis PHP文字列の例
<?php
//Connecting to Redis server on localhost
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
echo "Connection to server sucessfully";
//set the data in redis string
$redis->set("tutorial-name", "Redis tutorial");
//Get the stored data and print it
echo "Stored string in redis:: " .$redis→get("tutorial-name");
?>
上記のプログラムを実行すると、次の結果が生成されます。
Connection to server sucessfully
Stored string in redis:: Redis tutorial
Redis phpリストの例
<?php
//Connecting to Redis server on localhost
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
echo "Connection to server sucessfully";
//store data in redis list
$redis->lpush("tutorial-list", "Redis");
$redis->lpush("tutorial-list", "Mongodb");
$redis->lpush("tutorial-list", "Mysql");
//Get the stored data and print it
$arList = $redis->lrange("tutorial-list", 0 ,5);
echo "Stored string in redis:: ";
print_r($arList);
?>
上記のプログラムを実行すると、次の結果が生成されます。
Connection to server sucessfully
Stored string in redis::
Redis
Mongodb
Mysql
Redis PHPキーの例
<?php
//Connecting to Redis server on localhost
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
echo "Connection to server sucessfully";
//Get the stored keys and print it
$arList = $redis->keys("*");
echo "Stored keys in redis:: "
print_r($arList);
?>
プログラムが実行されると、次の結果が生成されます。
Connection to server sucessfully
Stored string in redis::
tutorial-name
tutorial-list