Redis-quick-guide

提供:Dev Guides
移動先:案内検索

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"

上記の例では、 SETGET は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

DEL key

このコマンドは、キーが存在する場合は削除します。

2

DUMP key

このコマンドは、指定されたキーに格納されている値のシリアル化されたバージョンを返します。

3

EXISTS key

このコマンドは、キーが存在するかどうかを確認します。

4

EXPIRE key seconds

指定された時間の後、キーの有効期限を設定します。

5

EXPIREAT key timestamp

指定された時間の後、キーの有効期限を設定します。 ここでの時間はUnixタイムスタンプ形式です。

6

PEXPIRE key milliseconds

キーの有効期限をミリ秒で設定します。

7

PEXPIREAT key milliseconds-timestamp

ミリ秒として指定されたUnixタイムスタンプのキーの有効期限を設定します。

8

KEYS pattern

指定されたパターンに一致するすべてのキーを検索します。

9

MOVE key db

キーを別のデータベースに移動します。

10

PERSIST key

キーから有効期限を削除します。

11

PTTL key

キーの有効期限の残り時間をミリ秒単位で取得します。

12

TTL key

キーの有効期限の残り時間を取得します。

13

RANDOMKEY

Redisからランダムキーを返します。

14

RENAME key newkey

キー名を変更します。

15

RENAMENX key newkey

新しいキーが存在しない場合、キーの名前を変更します。

16

TYPE key

キーに保存されている値のデータ型を返します。

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"

上記の例では、 SETGET がコマンドであり、 finddevguides がキーです。

Redis Stringsコマンド

次の表に、Redisで文字列を管理するためのいくつかの基本的なコマンドを示します。

Sr.No Command & Description
1

SET key value

このコマンドは、指定されたキーに値を設定します。

2

GET key

キーの値を取得します。

3

GETRANGE key start end

キーに格納されている文字列の部分文字列を取得します。

4

GETSET key value

キーの文字列値を設定し、その古い値を返します。

5

GETBIT key offset

キーに格納されている文字列値のオフセットのビット値を返します。

6

MGET key1 [key2..]

指定されたすべてのキーの値を取得します

7

SETBIT key offset value

キーに格納されている文字列値のオフセットのビットを設定またはクリアします

8

SETEX key seconds value

キーの有効期限で値を設定します

9

SETNX key value

キーが存在しない場合にのみ、キーの値を設定します

10

SETRANGE key offset value

指定されたオフセットで始まるキーの文字列の一部を上書きします

11

STRLEN key

キーに保存されている値の長さを取得します

12

MSET key value [key value …​]

複数のキーを複数の値に設定します

13

MSETNX key value [key value …​]

キーが存在しない場合にのみ、複数のキーを複数の値に設定します

14

PSETEX key milliseconds value

キーの値と有効期限をミリ秒で設定します

15

INCR key

キーの整数値を1つ増やします

16

INCRBY key increment

指定された量だけキーの整数値をインクリメントします

17

INCRBYFLOAT key increment

指定された量だけキーのフロート値をインクリメントします

18

DECR key

キーの整数値を1減らします

19

DECRBY key decrement

指定された数だけキーの整数値をデクリメントします

20

APPEND key value

キーに値を追加します

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

HDEL key field2 [field2]

1つ以上のハッシュフィールドを削除します。

2

HEXISTS key field

ハッシュフィールドが存在するかどうかを判断します。

3

HGET key field

指定されたキーに格納されているハッシュフィールドの値を取得します。

4

HGETALL key

指定されたキーでハッシュに保存されているすべてのフィールドと値を取得します

5

HINCRBY key field increment

ハッシュフィールドの整数値を指定された数だけインクリメントします

6

HINCRBYFLOAT key field increment

ハッシュフィールドのfloat値を指定された量だけインクリメントします

7

HKEYS key

ハッシュ内のすべてのフィールドを取得します

8

HLEN key

ハッシュ内のフィールドの数を取得します

9

HMGET key field1 [field2]

指定されたすべてのハッシュフィールドの値を取得します

10

HMSET key field1 value1 [field2 value2]

複数のハッシュフィールドを複数の値に設定します

11

HSET key field value

ハッシュフィールドの文字列値を設定します

12

HSETNX key field value

フィールドが存在しない場合にのみ、ハッシュフィールドの値を設定します

13

HVALS key

ハッシュ内のすべての値を取得します

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

LINDEX key index

インデックスでリストから要素を取得します

5 link:/redis/lists_linsert[LINSERT key BEFORE

AFTER pivot value]

リスト内の別の要素の前または後に要素を挿入します

6

LLEN key

リストの長さを取得します

7

LPOP key

リストの最初の要素を削除して取得します

8

LPUSH key value1 [value2]

1つまたは複数の値をリストに追加します

9

LPUSHX key value

リストが存在する場合のみ、リストに値を付加します

10

LRANGE key start stop

リストから要素の範囲を取得します

11

LREM key count value

リストから要素を削除します

12

LSET key index value

リスト内の要素の値をインデックスで設定します

13

LTRIM key start stop

リストを指定された範囲にトリミングします

14

RPOP key

リストの最後の要素を削除して取得します

15

RPOPLPUSH source destination

リストの最後の要素を削除し、別のリストに追加して返します

16

RPUSH key value1 [value2]

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

SADD key member1 [member2]

1つ以上のメンバーをセットに追加します

2

SCARD key

セット内のメンバーの数を取得します

3

SDIFF key1 [key2]

複数のセットを減算します

4

SDIFFSTORE destination key1 [key2]

複数のセットを減算し、結果のセットをキーに保存します

5

SINTER key1 [key2]

複数のセットを交差させる

6

SINTERSTORE destination key1 [key2]

複数のセットを交差させ、結果セットをキーに保存します

7

SISMEMBER key member

指定された値がセットのメンバーかどうかを判別します

8

SMEMBERS key

セット内のすべてのメンバーを取得します

9

SMOVE source destination member

メンバーをあるセットから別のセットに移動します

10

SPOP key

セットからランダムなメンバーを削除して返します

11

SRANDMEMBER key [count]

セットから1つまたは複数のランダムメンバーを取得します

12

SREM key member1 [member2]

セットから1つ以上のメンバーを削除します

13

SUNION key1 [key2]

複数のセットを追加します

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

ZCARD key

ソートされたセット内のメンバーの数を取得します

3

ZCOUNT key min max

指定された値内のスコアでソートされたセットのメンバーをカウントします

4

ZINCRBY key increment member

ソートされたセットのメンバーのスコアを増分します

5

ZINTERSTORE destination numkeys key [key …​]

複数のソートされたセットを交差させ、結果のソートされたセットを新しいキーに保存します

6

ZLEXCOUNT key min max

特定の辞書編集範囲内のソートされたセットのメンバーの数をカウントします

7

ZRANGE key start stop [WITHSCORES]

ソートされたセットのメンバーの範囲をインデックスで返します

8

ZRANGEBYLEX key min max [LIMIT offset count]

辞書式範囲ごとに、ソートされたセットのメンバーの範囲を返します

9

ZRANGEBYSCORE key min max [WITHSCORES [LIMIT]]

ソートされたセットのメンバーの範囲をスコアで返します

10

ZRANK key member

ソートされたセット内のメンバーのインデックスを決定します

11

ZREM key member [member …​]

ソートされたセットから1つ以上のメンバーを削除します

12

ZREMRANGEBYLEX key min max

指定された辞書編集範囲内のソートされたセット内のすべてのメンバーを削除します

13

ZREMRANGEBYRANK key start stop

指定されたインデックス内のソートされたセットのすべてのメンバーを削除します

14

ZREMRANGEBYSCORE key min max

指定されたスコア内のソートされたセットのすべてのメンバーを削除します

15

ZREVRANGE key start stop [WITHSCORES]

ソートされたセットのメンバーの範囲を、スコアを高から低に並べたインデックスで返します

16

ZREVRANGEBYSCORE key max min [WITHSCORES]

スコアごとに、ソートされたセットのメンバーの範囲を、スコアの高い順に並べて返します

17

ZREVRANK key member

ソートされたセット内のメンバーのインデックスを決定します。スコアは高い順に並べられます

18

ZSCORE key member

ソートされたセット内の指定されたメンバーに関連付けられたスコアを取得します

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

PFCOUNT key [key …​]

キーで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

PUBLISH channel message

チャンネルにメッセージを投稿します。

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

DISCARD

MULTIの後に発行されたすべてのコマンドを破棄します

2

EXEC

MULTIの後に発行されたすべてのコマンドを実行します

3

MULTI

トランザクションブロックの開始をマークします

4

UNWATCH

監視されているすべてのキーを忘れる

5

WATCH key [key …​]

指定されたキーを監視して、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

SCRIPT FLUSH

スクリプトキャッシュからすべてのスクリプトを削除します。

5

SCRIPT KILL

現在実行中のスクリプトを強制終了します。

6

SCRIPT LOAD script

指定された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

AUTH password

指定されたパスワードでサーバーを認証します

2

ECHO message

指定された文字列を出力します

3

PING

サーバーが実行中かどうかを確認します

4

QUIT

現在の接続を閉じます

5

SELECT index

現在の接続用に選択したデータベースを変更します

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

BGREWRITEAOF

追加専用ファイルを非同期で書き換えます

2

BGSAVE

データセットを非同期的にディスクに保存します

3

CLIENT KILL [ip:port [ID client-id]]

クライアントの接続を強制終了します

4

CLIENT LIST

サーバーへのクライアント接続のリストを取得します

5

CLIENT GETNAME

現在の接続の名前を取得します

6

CLIENT PAUSE timeout

指定された時間、クライアントからのコマンドの処理を停止します

7

CLIENT SETNAME connection-name

現在の接続名を設定します

8

CLUSTER SLOTS

クラスタスロットの配列をノードマッピングに取得します

9

COMMAND

Redisコマンドの詳細の配列を取得します

10

COMMAND COUNT

Redisコマンドの総数を取得します

11

COMMAND GETKEYS

完全なRedisコマンドを指定してキーを抽出します

12

BGSAVE

データセットを非同期的にディスクに保存します

13

COMMAND INFO command-name [command-name …​]

特定のRedisコマンドの詳細の配列を取得します

14

CONFIG GET parameter

構成パラメーターの値を取得します

15

CONFIG REWRITE

メモリ内の構成で構成ファイルを書き換えます

16

CONFIG SET parameter value

構成パラメーターを指定された値に設定します

17

CONFIG RESETSTAT

INFOによって返された統計をリセットします

18

DBSIZE

選択したデータベースのキーの数を返します

19

DEBUG OBJECT key

キーに関するデバッグ情報を取得します

20

DEBUG SEGFAULT

サーバーをクラッシュさせます

21

FLUSHALL

すべてのデータベースからすべてのキーを削除します

22

FLUSHDB

現在のデータベースからすべてのキーを削除します

23

INFO [section]

サーバーに関する情報と統計を取得します

24

LASTSAVE

最後に成功したディスクへの保存のUNIXタイムスタンプを取得します

25

MONITOR

サーバーが受信したすべてのリクエストをリアルタイムでリッスンします

26

ROLE

レプリケーションのコンテキストでインスタンスの役割を返します

27

SAVE

データセットをディスクに同期的に保存します

28

SHUTDOWN [NOSAVE [SAVE]]

データセットをディスクに同期的に保存してから、サーバーをシャットダウンします

29

SLAVEOF host port

サーバーを別のインスタンスのスレーブにするか、マスターとして昇格させます

30

SLOWLOG subcommand [argument]

Redisスロークエリログを管理します

31

SYNC

レプリケーションに使用されるコマンド

32

TIME

現在のサーバー時間を返します

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接続を確認します。 値 redistutorial という名前の文字列を設定しました。 後で、そのキーの値を取得し、訪問者の数を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