在Vagrant上構建Redis3集群的記錄
建立集群的方法
假设
前提是已经安装了VirtualBox和Vagrant。
在三台Vagrant上进行构建。
游客操作系统:debian 7.2
节点1:192.168.33.71
节点2:192.168.33.72
节点3:192.168.33.73
Redis端口:6379
在Vagrant上的构建方法
请在VagrantFile中按照以下方式进行编写。
请根据您的环境自行调整盒子名称。
config.vm.box = "debian72"
config.vm.define :redis1 do |node|
node.vm.network :private_network, ip: "192.168.33.71"
end
config.vm.define :redis2 do |node|
node.vm.network :private_network, ip: "192.168.33.72"
end
config.vm.define :redis3 do |node|
node.vm.network :private_network, ip: "192.168.33.73"
end
安装方式
使用vagrant ssh或类似的方式登录到客户操作系统,然后运行以下命令安装redis。
wget http://download.s.io/releases/redis-3.0.2.tar.gz
tar xzf redis-3.0.2.tar.gz
cd redis-3.0.2
make
用于分组的设置
在~/redis-3.0.2/src/redis.conf的末尾添加以下设置
### custer setting
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
启动redis服务器
~/redis-3.0.2/src/redis-server redis.conf
确认行动(substitute 动作 with 行动)
如果可以看到”bar”的显示结果,说明运行正常。
~/redis-3.0.2/src/redis-cli
set foo bar
get foo
安装Gem
如果不放进去,启动集群时可能会出错。
sudo gem install redis
./src/redis-trib.rb create 192.168.33.71:6379 192.168.33.72:6379 192.168.33.73:6379
当gem文件缺失时出现错误
如果发生以下错误,您需要使用此命令安装 Redis 用的 gem。
sudo gem install redis
/usr/local/lib/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- redis (LoadError)
from /usr/local/lib/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from ./src/redis-trib.rb:25:in `'
vagrant@debian-7:~/redis-3.0.2$ cd /usr/local/lib/
启动客户端
使用-c选项启动。
这样,无论从哪个节点启动,都应该能够获取到testkey。
~/redis-3.0.2/src/redis-cli -c
set testkey testvalue
其他
集群需要至少三台机器。
建立 Redis 集群至少需要三个 Redis 节点。如果节点少于三个,在启动集群时会报错。
数据副本
如果按照上述步骤,将不会创建副本(副本数量为0)。如果想要在多个节点上指定副本并保存相同的数据,可以在redis-trib create命令的选项中指定replicas。通过设置副本,即使特定的redis服务器宕机,数据仍有可能存活,但相应地会增加内存使用量,因此设置副本数量需要慎重考虑。