一、ruby环境搭建
www.ruby-lang.org/en/downloads/
下载 Ruby 之后,解压到新创建的目录下:
$ tar -xvzf ruby-2.2.3.tgz
$ cd ruby-2.2.3
现在,配置并编译源代码,如下所示:
$ ./configure
$ make
$ sudo make install
安装后,通过在命令行中输入以下命令来确保一切工作正常:
$ruby -v
ruby 2.2.3……
二、安装gem
https://rubygems.org/gems/redis
sudo gem install redis-3.3.3.gem --local
假如报下错:
ERROR: Loading command: install (LoadError)
cannot load such file -- zlib
ERROR: While executing gem ... (NoMethodError)
undefined method `invoke_with_build_args' for nil:NilClass
缺少zlib库:
参考https://blog.youkuaiyun.com/qq_21383435/article/details/79539034安装
安装完后需要使之生效:
集成zlib库到ruby环境
cd /data/ruby-2.4.2
cd ext/zlib
ruby extconf.rb
make && make install
三、安装redis
1、首先上官网下载Redis 压缩包,地址:http://redis.io/download
2、拷贝到linux
3、解压: tar zxvf redis.tar.gz
4、cd redis
5、make
6、cd src
6、make install
7、配置redis.conf
port 7000 //端口7000,7002,7003
bind 10.93.84.53 //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize yes //redis后台运行
pidfile ./redis_7000.pid //pidfile文件对应7000,7001,7002
cluster-enabled yes //开启集群 把注释#去掉
cluster-config-file nodes_7000.conf //集群的配置 配置文件首次启动自动生成
cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置
appendonly yes //aof日志
pidfile /var/run/redis_6379.pid //redis-server进程的pid
logfile "log6370.log“
8、启动redis,改变配置里的端口,启动多台redis
redis-server ./redis.conf
四、创建集群:
/app/ruby/redis-3.2.8/src/redis-trib.rb create --replicas 1 192.168.0.1:6370 192.168.0.2:6371 192.168.0.3:6372 192.168.0.4:6374 192.168.0.5:6375 192.168.0.6:6376
连接集群:
redis-cli -h 192.168.0.1 -c -p 6370
查看集群状态:cluster info
查看集群节点信息:cluster nodes
五、给集群设置密码:
连接每个实例|redis-cli -h 92.168.0.1 -c -p 6370
--masterauth主要用在slave同步master内容时,能过顺利通过验证,如果不配置slave将连不上master
config set masterauth passwd123
--requirepass用于配置本redis server的密码
config set requirepass passwd123
--登录密码
auth passwd123
--写入配置文件
config rewrite
注意:各个节点密码都必须一致,否则Redirected就会失败, 推荐这种方式,这种方式会把密码写入到redis.conf里面去,且不用重启。
带密码访问集群
./redis-cli -h 192.168.0.1 -c -p 6370 -a passwd123
注意事项:
1.如果是使用redis-trib.rb工具构建集群,集群构建完成前不要配置密码,集群构建完毕再通过config set + config rewrite命令逐个机器设置密码
2.如果对集群设置密码,那么requirepass和masterauth都需要设置,否则发生主从切换时,就会遇到授权问题,可以模拟并观察日志
3.各个节点的密码都必须一致,否则Redirected就会失败
六、补充集群动态增删节点:
添加节点
1、新建6385redis,并加到集群
./redis-trib.rb add-node 192.168.0.1:6385 192.168.0.1:6379
2、重新分配节点
./redis-trib.rb reshard 192.168.0.1:6379
输入分配的数量
输入接收槽的结点id,all为从所有节点随机抽取,输入done完成
3、添加从节点
新建节点,并启动
执行如下命令:前面为从节点,后面为要添加的所属主节点
./redis-trib.rb add-node --slave 192.168.0.1:6386 192.168.0.1:6385
删除节点
1、删除从节点
./redis-trib.rb del-node 192.168.0.1:6386 8269aa9bce92bed5ba6b86525ef4ad710a0f9bc4
2、删除主节点
./redis-trib.rb reshard 192.168.0.1:6379
输入分配的数量
输入要删除的节点id,输入done完成
调用删除节点命令:./redis-trib.rb del-node 192.168.0.1:6386 8269aa9bce92bed5ba6b86525ef4ad710a0f9bc4