先日仕事で唐突にredisデータベースを操作する機会が訪れました。
データ参照・削除などの単純な操作が求められたのですが、ネット上には構築など高度な操作のhackばかりで初心者向けの日本語情報が少なく苦労しました。
そのためredisの基本操作を備忘録として公開します。
キーの参照
redisはキーによって値を管理しています。キーの名前が分からないと何もできないため、
> keys *
によってキーの一覧を取得します。以下のように正規表現によるパターンマッチングが可能です。
> keys hoge[1-9]*
キーの種類
redisのキーには5種類のデータ型が存在します。種類の確認は以下のコマンドで行います。
> type [key]
以下は各データ型の大まかな理解です。
キーの種類 | 説明 |
---|---|
string | keyと値(value)が1対1の関係で管理されるデータ型 |
list | 1つのkeyに対して複数の値(element)を順序付きで管理するデータ型 |
set | 1つのkeyに対して複数の値(member)を順序なしで管理するデータ型 |
zset | 1つのkeyに対して複数の組(score, member)を順序なしで管理するデータ型 |
hash | key、field、valueにより階層的に管理されるデータ型 |
コマンド一覧
redisはキーに格納された値の種類によって操作コマンドが異なります。
よく使用するであろう参照・設定・削除のコマンドをまとめました。
キーの種類 | 参照コマンド | 設定コマンド | 削除コマンド |
---|---|---|---|
string | get [key] | set [key] [value] | del [key] |
list | lrange [key] 0 -1 | lset [key] [index] [element] | lrem [key] [count] [element] |
set | smembers [key] | sadd [key] [member] | srem [key] [member] |
zset | zrange [key] 0 -1 withscores | zadd [key] [score] [member] | zrem [key] [member] |
hash | hget [key] / hgetall | hset [key] [field] [value] | hdel [key] [field] |
公式のチートシートはこちら(英語版)
hashの参照コマンドにはfieldのみを返す> hkeys [key]
、valueのみを返す> hvals [key]
もあります。
lrangeやzrangeの第二、第三引数(0,-1)は参照の開始番号と終了番号を表し、任意の範囲を指定できます。
(例)
zrange [key] 10 20 withscores
:zsetの11番目から21番目(スコア付き)
lrange [key] -100 -1
:listの後ろから100番目から最後まで
また、削除コマンドには各データ型の特性がよく現れています。
- del [key] & hdel [key] [field] keyごと/fieldごと削除
- lrem [key] [count] [element] elementに一致するデータを前(負の場合後ろ)からcount分だけ削除
- srem [key] [member] & zrem [key] [member] memberに一致するデータをすべて削除
注記
公式ドキュメントは参照しましたが、内容の理解については曖昧です。
ご指摘のある方は躊躇なくコメントお願いします。
コマンドは動くと思います。