3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

redis 基本操作備忘録

Last updated at Posted at 2023-11-28

先日仕事で唐突に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に一致するデータをすべて削除

注記

公式ドキュメントは参照しましたが、内容の理解については曖昧です。
ご指摘のある方は躊躇なくコメントお願いします。
コマンドは動くと思います。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?