Redisの使い方メモ
Redisのインストール
Ubuntuの場合
動かしてみたいだけなので、テキトーにaptで入れる。
本番環境などでちゃんと使うときの設定とかはよくわかりません。
$ sudo apt update -y && sudo apt install -y redisRedis サーバーの起動
redis-serverコマンドで起動できる。
# redis-server 2>&1 >/dev/null &
# pgrep -l redis
401 redis-serverドキュメントによると、ポート6379がデフォルトらしい。
Make sure the port Redis uses to listen for connections (by default 6379 and additionally 16379 if you run Redis in cluster mode, plus 26379 for Sentinel) is firewalled, so that it is not possible to contact Redis from the outside world.
頑張って、/procからとってみた。
# printf '%d\n' `cat /proc/$(pgrep redis)/net/tcp | awk 'NR==2{print $2}' | awk -F":" '{print "0x"$2}'`
6379/proc/$PID/environ にもポート番号っぽいものが出ている。
# cat /proc/$(pgrep redis)/environ; echo;
*:6379lsofか、netstatを使えるようにしたほうが良い。
Redis サーバーに接続
redisへの接続は、同梱のredis-cliを使って接続できる。
$ redis-cliホストを指定して接続する場合は、-hオプションを使う。
$ redis-cli -h 127.0.0.1Redis サーバーの情報を調べる
infoコマンドでいろいろ出てくる。
127.0.0.1:6379> infoKey-Valueを登録・取得する
set <key> <value>でKey-Valueのペアを登録でき、get <key>で登録したValueを取得できる。
127.0.0.1:6379> set test1 "test value 1"
OK
127.0.0.1:6379> get test1
"test value 1"infoコマンドで登録されたデータベースを確認できる。Keyspaceのところを見ると、db0というデータベースに入ったらしい。
127.0.0.1:6379> info
...<snip>...
# Keyspace
db0:keys=1,expires=0,avg_ttl=0データベースは、db[0-15]の16個用意されているらしく、selectコマンドを使うと操作するDBを切り替えられる。
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> set test2 "test value for db1"
OK
127.0.0.1:6379[1]> get test2
"test value for db1"selectで切り替えてsetするだけで、新しいDBが使われ、infoの表示に出てくるようになる。
127.0.0.1:6379> info
...<snip>...
# Keyspace
db0:keys=1,expires=0,avg_ttl=0
db1:keys=1,expires=0,avg_ttl=0また、確かに範囲外のDBを参照しようするとエラーになる。
127.0.0.1:6379[15]> select 16
(error) ERR DB index is out of range登録されているkeyの一覧を調べる。
keys <pattern>でパターンに一致するキーの一覧を取得できる。
以下は、db0に登録されているキーの一覧を取得する。
127.0.0.1:6379> keys *
1) "hoge-fuga"
2) "foo"
3) "hoge2"
4) "test1"
5) "bar"
6) "hoge-hoge"
7) "hoge"
8) "hoge1"以下の様にすると、hogeで始まるキーの一覧を取得できる。
127.0.0.1:6379> keys hoge*
1) "hoge-fuga"
2) "hoge2"
3) "hoge-hoge"
4) "hoge"
5) "hoge1"また、登録されているキーの数だけ知りたい場合は、infoでわかる。
127.0.0.1:6379> info
...<snip>...
# Keyspace
db0:keys=8,expires=0,avg_ttl=0
db1:keys=1,expires=0,avg_ttl=0