Redisはキーバリュー型のインメモリデータベースです。
1. Redisの導入(前準備)
※Redis公式サイトよりインストール方法を参照。
Install Redis:https://redis.io/docs/install/install-redis/
2. Redisクライアントの起動
- redis-cliで、Redisクライアント(CUI)を起動する。
$ redis-cli
> ping
PONG
3. Redisコマンド
バリューの種類によって、コマンドが異なる。
- ストリング型(string)
- リスト型(list)
- ハッシュ型(hash)
- セット型(set)
- ソート済みセット型(zset)
■ ストリング型(string)
キーとバリューが1対1の関係で管理されるデータ型。
- set key value: 指定キーに対するバリュー(値)を登録
- get key: 指定キーに対するバリュー(値)を取得
> set x 100
OK
> get x
"100"
■ リスト型(list)
1つのキーに対してリスト(複数の値を持つ)により管理されるデータ型。
- lpush key value:指定キーのリストの先頭(左)から要素を追加
- rpush key value:指定キーのリストの末尾(右)から要素を追加
- lrange key start stop:指定した範囲(start ~ stop)のリスト要素を取得
※stopに-1を指定すると最後から1番目という意味になる - lpop key:指定キーのリスト(値)の先頭(左)から要素をpop(取得+削除)
- rpop key:指定キーのリスト(値)の末尾(右)から要素をpop(取得+削除)
- ltrim key start stop:指定した範囲(start ~ stop)のリスト要素以外を削除
> lpush y 1 2 3
(integer) 3
> rpush y 4 5
(integer) 5
> lrange 0 -1
1) "3"
2) "2"
3) "1"
4) "4"
5) "5"
> lpop y
"3"
> rpop y
"5"
> lrange y 0 -1
1) "2"
2) "1"
3) "4"
> ltrim y 0 1
OK
> lrange y 0 -1
1) "2"
2) "1"
■ ハッシュ型(hash)
親キー、子キー(フィールド)、バリュー(値)により管理されるデータ型。
- hmset key field value:指定キー+指定フィールドのバリュー(値)を登録
- hmget key field:指定キー+指定フィールドから、バリュー(値)を取得
- hincrby key field number:指定キー+指定フィールドのバリュー(値)を加算/減算
> hmset bike1 model 'scooter' brand 'vespa' type 'primavera' stocks 10
OK
> hmget bike1 type stocks
1) "primavera"
2) "10"
> hmget bike1 brand
1) "vespa"
> hgetall bike1
1) "model"
2) "scooter"
3) "brand"
4) "vespa"
5) "type"
6) "primavera"
7) "stocks"
8) "10"
■ セット型(set)
セットはメンバーのコレクションで管理されるデータ型。
- sadd key member:指定セット(キー)に新しいメンバーを追加
- scard key:指定セット(キー)のメンバーの登録数を取得
- smembers key:指定セット(キー)の全てのメンバーを取得
- sinter key1 key2 ...:2つ以上のセットを共通に持つメンバーのセット(積)を取得
- srem key member:指定キーのセットから指定するメンバーを削除
> sadd group1 user1 user2 user3
(integer) 3
> sadd group2 user1 user3
(integer) 2
> scard group1
(integer) 3
> smembers group1
1) "user3"
2) "user2"
3) "user1"
> sinter group1 group2
1) "user3"
2) "user1"
> srem group2 user3
(integer) 1
> smembers group2
1) "user1"
■ ソート済みセット型(zset)
ソート済みセットはメンバーとスコアのコレクションで管理されるデータ型(並びはスコア順)。
複数のメンバーが同じスコアを持つ場合、メンバー名の辞書順に並べられる。
- zadd key score member:指定のソート済みセット(キー)にスコアとメンバーを追加
- zrange key start stop:指定のソート済みセット(キー)からメンバーを取得
> zadd sgroup1 100 user1
(integer) 1
> zadd sgroup1 180 user2
(integer) 1
> zadd sgroup1 150 user3
(integer) 1
>zrange sgroup1 0 -1
■ 共通
- keys *:登録済みのキーの一覧を取得
- exists key:キーが登録済みかを確認(あれば1を返す)
- type key:バリュー(値)の種類を確認(string list set zset hash)
- del key:指定のキーを削除
- info:Redisサーバーの情報を取得
> keys *
1) "sgroup1"
2) "group2"
3) "group1"
4) "bike1"
5) "y"
6) "x"
> type x
string
> type y
list
> type group1
hash
> type group1
set
> type sgroup1
zset
> del x
(integer) 1
> info
(#Server, #Clients, #Memory, #Persistence, #Stats, #Replication, #CPU, #Cluster, #Keyspaceが表示される)
参考:Redis公式サイト
https://redis.io/
以上