7つのデータベース 7つの世界を読んだため備忘録としてまとめる。
▪️Redisとは
2009 年 にリリースされた Redis (REmote DIctionary Service) は、 高 機 能 なコ マンドを 備 えた 簡 単 に 使 えるキーバリューストアである。
▪️データ構造サーバーストア
・とにかく高速
▪️Redis の 機 能 ・ 規 約 ・ 設 定
・CRUDとデータ型
$redis-server
サーバーを起動
$redis-cli
コマンドラインツールを実行。自動的にポート 6379 に接続する。
キーバリューの設定にSETを使う。(キーと値の2つの引数が必要)
値を読み取るのにはGETとキーを使う。
例)
redis 127.0.0.1:6379> SET 7wks http://www.sevenweeks.org/ OK
redis 127.0.0.1:6379> GET 7wks "http://www.sevenweeks.org/"
複数のキーバリューペアを設定にはMSETを使う。
例)
redis 127.0.0.1:6379> MSET gog http://www.google.com yah http://www.yahoo.com OK
複 数 のキーを 受 け 取 って、 値 を 順 序 付 きリストとして 返 すにはMGETを使う。
redis 127.0.0.1:6379> MGET gog yah 1) "http://www.google.com/" 2) "http://www.yahoo.com/"
インクリメント (INCRBY) もデクリメント (DECR・DECRBY) もできる。
トランザクション
トランザクションは MULTI コマンドで 開 始 して、 EXEC で 実 行 する。
例)
redis 127.0.0.1:6379> MULTI OK redis 127.0.0.1:6379> SET prag http://pragprog.com QUEUED redis 127.0.0.1:6379> INCR count QUEUED redis 127.0.0.1:6379> EXEC 1) OK 2) (integer) 2
※ただしコマンドを発行した時点では実行されない。
複雑なデータ型
基本パターン
・ハッシュ (Hash) は H。
・ソート 済 みセッ ト (Sorted Set) は Z。
・リスト (List) は、 操作 の 向 きに 応 じて L (left) か R (right) で 始 まっている (LPUSH など)。
ハッシュ
任意 の 数 のキーバリューペアを 受 け 取 ることのできるネ ストした Redis オブジェクトみたいなもの
キーを分けずに、キーバリューペアを含むハッシュをつくることもできる。
リスト
順 序 のある 複 数 の 値 を 含 むもので、 キュー (最初 に 入 った 値 が 最初 に 出 て 行 く) とスタック (最後 に 入 った 値 が 最初 に 出 て 行 く) の 2 種 類 がある。
RPUSH 値を追加
LRANGE リストの範囲指定
LREM キーにマッチした値を削除。(個数指定可能)
LPOP リストの要素の先頭を取得。取得した要素は削除。
※LPUSH と RPOP でキューの 動 作、 LPUSH と LPOP でスタックの 動 作
RPOPLPUSH リスト末尾から値をポップ、他のリストの先頭にプッシュ
BRPOP ポップする値が存在するまでブロックする。(値をポップするキーとタイムアウトの秒数が必要)
セット
順 序 や 重 複 のない 値 のコレクション
SADD 共通のキーでセット
ソート済みセット
リストのように 順 番 があり、 セットのように 重 複 がない。
範囲
ZRANGE
例)
redis 127.0.0.1:6379> ZRANGE visits 0 1
1) "gog"
2) "7wks"
▪️有効期限
EXPIRE 期限を設定
EXISTS 存在をチェック
SETEX ショートカットコマンド
TTL 有効期限の問い合わせ
PERSIST タイムアウト無効
▪️データベースの名前空間
Redis の 用 語 では、 名 前 空 間 はデータベースと 呼 ばれ、 数 値 がキーになってい る。