すべてのチートシート

Redis CLI チートシート

redis-cli を素早く参照:接続 / info、key / string、ハッシュ、リスト、セット、ソート済みセット、ストリーム、パブ/サブ、サーバ管理、永続化 / レプリケーション、診断 — よく使うオプションと実用例をまとめました。

42 コマンド

接続 / Info

redis-cli -h <host> -p <port> -a <pwd>

Redis サーバに接続して対話 REPL を開きます。

-h host; -p 6379; -a password; --user user; --pass password; --tls; --insecure; -n dbnum

redis-cli -h redis.internal -p 6379 --user monitoring --pass ***
redis-cli AUTH <password>

現在の接続で認証します(REPL を開いた後)。

--user <user> && AUTH password; ACL 形式

redis-cli AUTH my_secret_password
redis-cli PING

PING を送信;PONG が返ってくるはず — 基本的な接続性 / ヘルス チェック。

任意の接続オプション -h / -p / --pass; -r 繰り返し; -i 間隔

redis-cli -h redis -p 6379 -i 5 PING
redis-cli INFO [section]

サーバ統計を表示(server / clients / memory / replication / keyspace / stats など)。

INFO [server|clients|memory|stats|replication|keyspace|cluster|commandstats]; --stat 簡易ライブ カウンタ

redis-cli -h redis INFO memory | head && redis-cli --stat -i 5 -h redis
redis-cli CLIENT LIST

現在のクライアント接続を一覧(id、addr、fd、name など)。

CLIENT LIST; CLIENT GETNAME; CLIENT SETNAME

redis-cli CLIENT LIST | awk '{print $1, $2}' | head
redis-cli CLIENT KILL <id|addr>

クライアントを切断(id、addr host:port、TYPE / ADDR / USER / LADDR フィルタ)。

KILL ADDR ip:port; KILL TYPE normal|master|replica|pubsub; KILL USER username

redis-cli CLIENT KILL ADDR 10.0.1.42:54321 && redis-cli CLIENT LIST | wc -l

Key / String

GET / SET / SETEX / SETNX

文字列の読み書き;SETEX で TTL 付与、SETNX はキーが無い場合のみ書込。

SET key val EX N(TTL 秒)| PX N(ms)| NX/XX; GETEX(Redis 6.2)

redis-cli SET session:42 '{"user":42}' EX 3600 NX && redis-cli GET session:42
MSET / MGET / MSETNX

複数キーの文字列操作;MSETNX はいずれかキーが存在すれば失敗。

redis-cli MSET cache:hit:1 ok cache:hit:2 ok && redis-cli MGET cache:hit:1 cache:hit:2 cache:miss:1
INCR / INCRBY / INCRBYFLOAT

アトミックなカウンタ操作 — レート リミッタやカウンタに最適。

redis-cli INCR ratelimit:user:42 redis-cli INCRBY hitcounter:2026-07-23 5 redis-cli INCRBYFLOAT metric:load 0.05
APPEND / STRLEN / DEL / EXISTS

文字列キーの基本管理:追記、長さ、単一 / 複数削除。

DEL key [key ...]; EXISTS k1 k2(存在する数); TYPE key

redis-cli APPEND log:42 'request\n' && redis-cli STRLEN log:42

キー / TTL

EXPIRE / PEXPIRE / TTL / PTTL / PERSIST / EXPIREAT

TTL の設定 / 表示(秒 / ミリ秒 / Unix 絶対時間);PERSIST でクリア。

EXPIRE key seconds; PEXPIRE key ms; EXPIREAT key unix_seconds; NX/XX/GT/LT

redis-cli EXPIRE session:42 300 && redis-cli TTL session:42
KEYS pattern / SCAN

KEYS は O(N) で大規模 DB では危険 — カーソル付き SCAN を推奨。

SCAN cursor MATCH pattern COUNT N TYPE type; --no-warnings

redis-cli --scan --pattern 'cache:hit:*' | head -20
OBJECT ENCODING|HELP|FREQ|IDLETIME|REFCOUNT <key>

内部エンコーディング / メモリ / 最終アクセスを調査(デバッグ / RDS 性能チューニング)。

redis-cli OBJECT ENCODING big:set && redis-cli OBJECT IDLETIME big:set

ハッシュ

HSET / HGET / HMSET / HMGET / HGETALL

小さなオブジェクトをハッシュとして格納 — プロファイル / 設定 / セッションに最適。

HSET key f1 v1 f2 v2; HMGET key f1 f2; HSETNX f v 未存在時のみ設定

redis-cli HMSET user:42 name Alice email [email protected] && redis-cli HGETALL user:42
HKEYS / HVALS / HLEN / HEXISTS / HDEL

ハッシュの閲覧と整理:キー / 値 / 長さ / 存在 / 削除。

redis-cli HKEYS user:42 && redis-cli HLEN user:42 && redis-cli HEXISTS user:42 admin
HINCRBY / HINCRBYFLOAT

ハッシュ フィールドに対するアトミック カウンタ — ネストしたカウント指標に最適。

redis-cli HINCRBY orders:2026-07-23 paid_count 1 && redis-cli HINCRBYFLOAT orders:2026-07-23 gmv 19.95

リスト

LPUSH / RPUSH / LPOP / RPOP

リストをキュー(LPUSH / LPOP = FIFO)またはスタック(LPUSH / RPOP = バックオフ付きキュー)として扱う。

redis-cli RPUSH jobs:queue job1 job2 job3 && redis-cli LPOP jobs:queue
LRANGE / LLEN / LINDEX / LSET / LREM

リストの範囲読み取り / 管理;LSET はインデックス必須;LREM は count>0 で先頭、<0 で末尾から。

LRANGE key 0 -1 全件; LINDEX 0 先頭; LREM 0 value 全件; LTRIM start stop 範囲のみ保持

redis-cli LRANGE jobs:queue 0 -1 && redis-cli LTRIM logs:2026-07-23 -1000 -1
BLPOP / BRPOP / BRPOPLPUSH

ブロッキング版 — 空なら N 秒待機して pop;安全なキュー ワーカー向け。

BLPOP key timeout(秒、0=無制限); COUNT オプション(Redis 6.2+)

redis-cli BLPOP jobs:queue 0
RPOPLPUSH src dst / LMOVE src dst LEFT|RIGHT (6.2+)

片側から pop して別側へ push — 安全なキュー処理向け。

redis-cli LMOVE jobs:queue jobs:processing RIGHT LEFT

セット

SADD / SMEMBERS / SCARD / SISMEMBER

セットの操作:メンバーシップ、サイズ、一括確認(0 / 1 を返す)。

SADD k m1 m2 ...; SCARD k; SISMEMBER k m

redis-cli SADD tags:42 redis postgres mongo && redis-cli SCARD tags:42
SREM / SPOP / SRANDMEMBER

削除 / ランダム pop(削除)/ ランダム抽出(保持)— サンプリングやくじ引きに。

redis-cli SRANDMEMBER lottery:tickets 3 && redis-cli SPOP lottery:tickets 1
SINTER / SUNION / SDIFF / SDIFFSTORE

集合演算 — 共通 / 和 / 差を計算;*_STORE は結果をキーへ書込。

redis-cli SINTER tags:a tags:b tags:c && redis-cli SDIFFSTORE missing:set tags:all tags:42

ソート済みセット(Zset)

ZADD / ZSCORE / ZRANGE / ZCARD

スコア付きでメンバを格納;ZRANGE はスコア順(WITHSCORES)または辞書順。

ZADD k score m [score m ...]; ZRANGEBYSCORE -inf +inf; ZREVRANGE

redis-cli ZADD lb:game alice 1500 bob 1300 carol 1750 && redis-cli ZRANGE lb:game 0 -1 REV WITHSCORES
ZRANGEBYSCORE / ZRANK / ZINCRBY / ZREM

zset の範囲 / ランク / カウンタ — トップ N、下限スライド、ランキング。

ZRANGEBYSCORE min max LIMIT offset count; ZREVRANK; ZREM k m [m...]

redis-cli ZADD ratelimit:api 1750731000.123 10.0.1.42 1750731050.456 10.0.1.7 && redis-cli ZREMRANGEBYSCORE ratelimit:api 0 $(date +%s.%N --date='-5 minutes')

Pub/Sub と Streams

SUBSCRIBE / PSUBSCRIBE / PUBLISH / UNSUBSCRIBE

リアルタイム pub/sub — 軽量なブロードキャストで永続化なし。

PSUBSCRIBE news:*; PUBLISH channel msg; PUB/SUB NUMSUB で確認

redis-cli PSUBSCRIBE 'app.*' & PID=$!; redis-cli PUBLISH app.notice 'red-button pressed'; sleep 0.1; kill $PID
XADD / XLEN / XRANGE / XREAD

Stream = コンシューマ グループ付きの追記専用ログ(Redis 5+)。

XADD k * f v; XADD k MAXLEN ~ 1000 * f v(上限付き); XREAD / XREADGROUP; コンシューマ名; XAUTOCLAIM

redis-cli XADD events * user 42 action click && redis-cli XLEN events && redis-cli XRANGE events - +
XREAD BLOCK 0 STREAMS k $

新規エントリを永遠に待機 — ワーカー キューにはコンシューマ グループと併用。

redis-cli XGROUP CREATE events grp1 0 MKSTREAM && redis-cli XREADGROUP GROUP grp1 c1 BLOCK 0 COUNT 10 STREAMS events '>'

サーバ管理

FLUSHDB / FLUSHALL [ASYNC]

現在(FLUSHDB)/ 全(FLUSHALL)データベースを消去。⚠️ 破壊的。

FLUSHALL ASYNC; FLUSHDB ASYNC; --no-auth-warning

redis-cli -h dev FLUSHDB
DBSIZE / CONFIG GET|SET <key>

キー数とランタイム設定(memory 制限、appendonly 等)を確認。

CONFIG GET dir/save/maxmemory; CONFIG SET maxmemory 1gb; CONFIG REWRITE 永続化

redis-cli CONFIG SET maxmemory-policy allkeys-lru && redis-cli CONFIG REWRITE
SLOWLOG GET|len|reset

slowlog-log-slower-than(マイクロ秒)を超えるコマンドを調査。

SLOWLOG GET 10; SLOWLOG LEN; SLOWLOG RESET

redis-cli SLOWLOG GET 10 | jq '.[].command'
MONITOR

全クライアントの全コマンドをストリーム化 — デバッグ専用で高コスト。

追加フラグなし; --bigkeys(redis-cli --bigkeys と併用推奨); --memkeys; --latency; --intrinsic-latency

timeout 2 redis-cli MONITOR | grep -E 'EXPIRE|GET.*:42'
DEBUG ... / MEMORY USAGE <key>

内部状態を調査:OBJECT エンコーディング、キー毎メモリ(デバッグ専用フラグ)。

MEMORY USAGE key [SAMPLES N]; DEBUG OBJECT-DURATION / DEBUG RELOAD-ALL-COMMANDS(稀)

redis-cli MEMORY USAGE user:42 SAMPLES 5 && redis-cli MEMORY DOCTOR
ACL WHOAMI / ACL CAT / ACL GETUSER

ACL デバッグ(Redis 6+)。

redis-cli ACL WHOAMI && redis-cli ACL GETUSER deployer | head -20

永続化

BGSAVE / SAVE / LASTSAVE

RDB スナップショットをトリガ(BGSAVE = fork + 非同期);LASTSAVE は最終スナップショット時刻。

redis-cli BGSAVE && redis-cli LASTSAVE
BGREWRITEAOF

バックグラウンドで AOF ファイルを書き直し(コンパクション)。

rewrite 中も短時間ブロック;auto-aof-rewrite-percentage で自動トリガ

redis-cli BGREWRITEAOF && redis-cli INFO persistence | head
REPLICAOF host port (was SLAVEOF)

このインスタンスを他のレプリカにする(または REPLICAOF NO ONE で昇格)。

redis-cli REPLICAOF redis-master 6379 && redis-cli REPLICAOF NO ONE

パイプライン / スキャン

redis-cli ... < commands.txt

パイプライン:stdin から 1 ラウンド トリップで複数コマンドを一括送信。

--pipe モードは RESP を使用; < file.txt

printf 'SET k1 v1\nSET k2 v2\nGET k1\nGET k2\nINCR counter\n' | redis-cli --pipe | head
redis-cli --scan --pattern '...'

サーバ側カーソル スキャンで KEYS のような O(N) を回避。

--scan --pattern p; --bigkeys / --memkeys / --hotkeys(サンプリング)

redis-cli --scan --pattern 'session:*' | wc -l

診断

redis-cli --bigkeys / --memkeys

最大キー / キー毎メモリを発見;サンプリング ベース(サーバを凍結しない)。

redis-cli -h prod --bigkeys --i 0.01 | tee /tmp/bigkeys.log
redis-cli --latency / --latency-history

ライブ レイテンシ ヒストグラム(min / max / avg)を数サンプルで。

--latency; --latency-history -i 5; --intrinsic-latency N(OS クロック診断)

redis-cli -h prod --latency-history -i 5 > /tmp/lat.log & sleep 30; kill %1
redis-cli CLUSTER INFO / CLUSTER NODES

クラスタの状態:スロット、ノード役割(master / replica)、状態。

redis-cli --cluster check 10.0.0.1:6379

チートシート バージョン 1.0.0

Redis 6.2+ に対応