LoginSignup
28
27

More than 5 years have passed since last update.

redis clusterの作り方

Last updated at Posted at 2015-01-15

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
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台全てのサーバを起動します。

ターミナルA
$ redis-server 7000/redis.conf
ターミナルB
$ 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:inrequire' from ./redis-trib.rb:25
みたいなのが出た時は、
1. rubyのバージョンが新しいか(1.9 or 2.0とか)
2. 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"
28
27
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
27