はじめに
いまさらのいまさらですが、redisを入れてみてから起動して確認するまでをかんたんにおさらい。
redisは入れるのも確認も簡単ですね╭( ・ㅂ・)و ̑̑ グッ
今回入れるのはCentOS 6.2です。
$ cat /etc/redhat-release
CentOS release 6.2 (Final)
- redis入れる
- 設定する
- 起動&確認してみる
- 起動スクリプト作成
1. redisとは
いまさらですが一応ブログの入りぽく、ということで。。。
説明下手なので参考サイトをまんま拝借させて頂きました。
- データはメモリ上に入っている。インメモリデータベース。
- ディスクにデータを適当なタイミングで書き込み可能(永続化できる)。
- Key-Valueストア。キーと、それに対応したValueから構成される。ValueにはStringやListなど様々な型が使える。
- Github、stackoverflow、ニコ生などで採用実績がある。
- 初めて登場したのは2009年4月。ネット上の記事は2011年頃のをよく見る。
- API一覧はここ。Command reference – RedisまたはKOSHIGOE学習帳 - [KVS][Redis] Redis コマンド一覧。
1. redis入れる
これはまんまやるだけですね
$ cd /usr/local/src/
$ sudo wget http://download.redis.io/releases/redis-2.8.12.tar.gz
$ sudo tar xzf redis-2.8.12.tar.gz
$ cd redis-2.8.12/
$ make make
$ sudo make install
補足
他のサイトなど参考にするとredisの前に下記もいれる必要があるかもです。
自分はすでに入っていたので今回にはいれてません
$ sudo yum -y install gcc make
2. 設定する
設定ファイルはredisを展開したディレクトリにいるのでコピーして使います。
設定ファイル編集
# confファイルを確認
$ pwd
/usr/local/src/redis-2.8.12
$ ls -al re*
-rw-rw-r-- 1 root root 31209 Jun 23 2014 redis.conf
# オリジナルは残しつつconfファイル作成
$ sudo mkdir /etc/redis
$ sudo cp -ap redis.conf /etc/redis/6379.conf
# 設定編集
# 設定項目のそれぞれの意味は下記に書いたのでそちらを参考に。
$ sudo vi /etc/redis/6379.conf
---- vi編集 ----
daemonize no
# daemonize yesにしたとき忘れないように念のため
pidfile /var/run/redis_6379.pid
port 6379
timeout 60
loglevel debug
logfile "/var/log/redis/6379.log"
databases 16
---------------
# 設定ファイルに合わせてディレクトリつくっておいたり
$ sudo mkdir /var/log/redis
設定補足
設定について書いておきます。最初はこのあたりだけで良いかと。
項目 |
説明 |
例 |
daemonize [yes/no] |
デフォルトはno。デーモンとして動作させたい場合はyes。またその場合はpidファイルのしても忘れずに |
daemonize no |
pidfile [filepath] |
デーモンとして起動するときにpidを書き出すファイル |
pidfile /var/run/redis_6379.pid |
port [portnumber] |
コネクションを受け付けるポート。デフォルト6378 |
port 6379 |
timeout [N秒] |
N秒数間コマンドが送信されなければクライアントとの通信を切断。0を指定するとタイムアウト無し設定 |
timeout 60 |
loglevel [level] |
サーバのログの情報量をdebug/verbose/notice/warning のいずれかで設定。値を見たらなんとなくわかるかと。 |
loglevel debug |
logfile [filepath] |
ログファイルの指定。stdout を指定すると標準出力に。stdout指定&daemonize中は /dev/null 行きなので注意 |
logfile "/var/log/redis/6379.log" |
databases [num] |
RedisはDB名というものがなく番号で管理されている。そのデータベースの番号。databases 16 と指定した場合はデフォルトで0〜15のDB番号を使用できる。デフォルトのデータベースは0 |
databases 16 |
スナップショットの設定など、他も参考にしたい場合は下記が参考になりました。
3. 起動&確認してみる
redisの起動と確認にはserverとclientを立ち上げます。
background起動(daemonize)ではなくそのまま立ち上げてみるため
serverとclientをそれぞれ別のターミナルで立ち上げて確認します。
redis-server起動
$ sudo redis-server /etc/redis/6379.conf
補足1
daemonize yes
で起動した場合にredis-serverを終了するには、
psなどでプロセスを確認してkillで落とすか、pidfileも指定してるはずなので下記のようにします。
$ sudo kill `cat /var/run/redis_6379.pid`
補足2
当たり前ですがログファイルの場所に権限がない場合なんかはsudoやrootで行ってください
$ redis-server /etc/redis/6379.conf
*** FATAL CONFIG FILE ERROR ***
Reading the configuration file, at line 103
>>> 'logfile "/var/log/redis/6379.log"'
Can\'t open the log file: Permission denied
redis-cliでの対話モード確認
確認は主にclientから確認します。
key-valueのデータの確認に簡単なset-getをします。
# 起動
$ redis-cli
redis 127.0.0.1:6379>
# set-getを確認してみる
redis 127.0.0.1:6379> set test hoge
OK
redis 127.0.0.1:6379> get test
"hoge"
# 複数setしてkeyの一覧を見てみる
redis 127.0.0.1:6379> set name fuga
OK
redis 127.0.0.1:6379> keys *
1) "name"
2) "test"
# setした値に有効期限(10秒)をつけてみる
redis 127.0.0.1:6379> setex name 10 piyo
OK
redis 127.0.0.1:6379> get name # 10秒未満
"piyo"
redis 127.0.0.1:6379> get name # 10秒経過
(nil)
# 終了
redis 127.0.0.1:6379> exit
$ redis-cli -p 6379 set test fuga
OK
$ redis-cli -p 6379 get test
"fuga"
起動スクリプトを作成します。
daemonizeしていればbackgroundで起動します。
# 起動スクリプトをutilからコピー
$ cd /usr/local/src/redis-2.8.12/
$ sudo cp -ap utils/redis_init_script /etc/init.d/redis_6379
# 起動してみる
$ sudo /etc/init.d/redis_6379 start
Starting Redis server...
まとめ
redisって何度か入れてますが、ほんと簡単で試しやすくて良いですよねー!
いろいろ勉強すると奥が深いミドルウェアですがちょっと試すにもすいすいです
( ・ㅂ・)و ̑̑ グッ