🎃

Redisの基本コマンド入門【保存版】

に公開

はじめに

Redisはインメモリデータベースで、高速な読み書きが特徴。主にキャッシュやリアルタイム分析、セッション管理など、スピードが求められる用途で広く使われている。

Redisの準備

redis-cliを使うために必要なこと

①Redisのインストール(Mac)

brew install redis

②Redisの起動

redis-server

③Redisへの接続

redis-cli
127.0.0.1:6379>

①文字列(String)

SET:値を設定

> SET key1 "hello"
OK

GET:値を取得

> GET key1
"hello"

// 存在しないキーはnilが返る
> GET key2
(nil)

MGET:複数のキーの値を取得

> MSET key1 "hello" key2 "ohh"
OK

> MGET key1 key2
1) "hello"
2) "ohh"

MSET:複数のキーと値を登録

> MSET key1 "hello" key2 "ohh"
OK
> get key1
"hello"
> get key2
"ohh"

MSETNX:指定したキーがすべて存在しなければ値を登録

> MSETNX key1 "hello" key2 "ohh"
OK

> get key1
"hello"
> get key2
"ohh"

// key3が存在していない
> MSETNX key1 "yea" key3 "aaa"
(integer) 0

//key1は更新されず、key3は登録されない
> get key1
"hello"
> get key3
(nil)

SETNX:既存キーが存在しない場合に登録

キーが存在する場合は更新されない

> SET key1 "hello"
OK
> SETNX key1 "abc"
(integer) 0
> GET key1
"hello"

> SETNX key2 "abc"
(integer) 1
> GET key1
"abc"

SETEX:キーに有効期限を秒単位で設定

ttlコマンドによって有効期限を確認可能

> SETEX key 10 "hello"
OK

// 有効期限を確認し、残り5秒であることを示す
> ttl key
(integer) 5

// 有効期限が切れると-2が返却
> ttl key
(integer) -2

PSETEX:キーに有効期限をミリ秒単位で設定

// キーに1000ms(1秒)の有効期限設定
> psetex key 10000 "hello"
OK

// 有効期限が1798ミリ秒であることを示す
> pttl key
(integer) 1798

// 有効期限切れの場合は-2が返却
> pttl key
(integer) -2

GETSET:値の取得と更新を同時に行う

// 新規に登録する場合はnilが返却
> GETSET key "hello"
(nil)

//現在の値を取得し、新しい値を登録
> GETSET key "ohh"
"hello"

STRLEN:値の長さを取得

// キーが存在しない場合は0が返却
> STRLEN key
(integer) 0

> SET key "hello"
OK
> STRLEN key
(integer) 5

DEL:キーを削除

> DEL key1
(integer) 1

②リスト(List)

LPUSH:左から追加

> LPUSH mylist "a"
(integer) 1

RPUSH:右から追加

> RPUSH mylist "b"
(integer) 2

LRANGE:リストの取得

> LRANGE mylist 0 -1
1) "a"
2) "b"

③ハッシュ(Hash)

フィールドと値のペアを保存できる(オブジェクトに近い)

HSET:フィールドを追加

> HSET user:1 name "Alice" age "30"
(integer) 2

HGETALL:全てのフィールドと値を取得

> HGETALL user:1
1) "name"
2) "Alice"
3) "age"
4) "30"

④セット(Set)

重複のない集合データ。

SADD:要素を追加

SADD myset "apple"

SMEMBERS:全ての要素を取得

SMEMBERS myset

⑤整数操作(INCR/DECR)

カウンター的に使える機能

INCR:値をインクリメント

INCR counter

DECR:デクリメント

DECR counter

⑥その他便利なコマンド

KEYS:キーの一覧を取得

KEYS *

EXPIRE:キーに有効期限を設定(秒)

EXPIRE key1 60

TTL:有効期限の残り時間

TTL key1

Discussion