redis3.0.0 RC2がリリースされました。
redis3.0.0から新しく入るredis clusterについて簡単な作り方のメモです。
CentOS使って、1サーバで6台のredis clusterを作ります。
(ほぼ、チュートリアルhttp://redis.io/topics/cluster-tutorialを日本語にしただけです)
1. ディレクトリの用意
$ mkdir ~/cluster-test
$ cd ~/cluster-test
$ mkdir 700{0,1,2,3,4,5}
2. 最小構成の設定ファイルを用意する
$ cd 7000
$ emacs redis.conf
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
上記の作業を7001~7005までportの設定値だけを変えながら繰り返します。
※cluster-config-fileは変える必要はありません
3. 各サーバの起動
6台全てのサーバを起動します。
$ redis-server 7000/redis.conf
$ redis-server 7001/redis.conf
:
:
ターミナルを複数開きます。自分はemacsなので、画面分割してやりました。
初回起動時には、
No cluster configuration found, I'm d9b3d1d86b5f5c928f882df6caddc0dbf6031347
との表示が出て、クラスタの設定ファイル(nodes.conf)が作られます。
このd9b3d1d86b5f5c928f882df6caddc0dbf6031347
が各サーバを識別する名前となります。
この時点では、1台✕6 がそれぞれ起動している状態です。
4. クラスタリング
$ cd ~/redis/src/
$ redis-trib.rb create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.01:7004 127.0.0.1:7005
:
Can I set the above configuration? (type 'yes' to accept): yes
:
クラスタリング完了です。
###注意点1
redis-trib.rbでサーバを指定するとき、IPで指定するようにしてください。
以下のようにホスト名だと失敗します。
redis-trib.rb create localhost:7000 localhost:7001 …
→失敗する
###注意点2
redis-trib.rbを実行した時に、
kernel_require.rb:55:in
require' from ./redis-trib.rb:25`
みたいなのが出た時は、
- rubyのバージョンが新しいか(1.9 or 2.0とか)
- redisのgemをインストールしているか。→していない場合は
gem install redis
を確認してください。
###動作確認
$ redis-cli -c -p 7000
127.0.0.1:7000> set foo bar
-> Redirected to slot [12182] located at 127.0.0.1:7004
OK
127.0.0.1:7004> get foo
"bar"