Linux环境redis集群搭建
1.安装redis
上传服务器,解压,编译
tar -zxvf redis-3.2.1.tar.gz
cd redis-3.2.1
make
2.可以在同目录下新建文件夹redis_cluster
3.在redis_cluster文件夹下创建log文件夹,此路径后面会用在redis.conf logfile的配置中,便于统一存放日志
4.在redis_cluster文件夹下创建各节点的文件夹名称,建议用端口号命名,如下图:
5.将安装好的redis实例中的redis.conf分别copy至7000、7001、7002文件夹中,
并修改如下内容
port 7000 cluster-config-file nodes-7000.conf dbfilename dump-7000.rdb logfile "/usr/local/redis_cluster/log/7000.log" bind 192.168.1.249 appendonly yes daemonize yes cluster-enabled yes cluster-node-timeout 15000 rename-command CONFIG ""
logfile "/usr/local/redis_cluster/log/"
dir /usr/local/redis_cluster
在redis_cluster目录下创建log文件夹
在/usr/local/redis-3.2.4/src目录下,执行启动redis进程命令:
./redis-server /usr/local/redis_cluster/7000/redis.conf
./redis-server /usr/local/redis_cluster/7001/redis.conf
./redis-server /usr/local/redis_cluster/7002/redis.conf
在192.168.1.248上也同样操作,在/usr/local/redis-3.2.4/src目录下:
./redis-server /usr/local/redis_cluster/7003/redis.conf
./redis-server /usr/local/redis_cluster/7004/redis.conf
./redis-server /usr/local/redis_cluster/7005/redis.conf
因为是执行的ruby的脚本,需要ruby的环境
安装ruby环境
[root@apec-001 src]# yum install ruby
安装rubygems组件,使用yum安装
[root@apec-001 src]# yum install rubygems
安装redis和ruby的接口,使用gem 安装
gem install redis
执行集群创建命令,还是在/usr/local/redis-3.2.4/src目录下:
[root@apec-001 src]# ./redis-trib.rb create --replicas 1 192.168.8.21:7000 192.168.8.21:7001 192.168.8.21:7002 192.168.8.21:7003 192.168.8.21:7004 192.168.8.21:7005
6、测试
使用redis-cli命令进入集群环境
./redis-cli -c -p 7000(此命令只能连接到bind为127.0.0.1)
./redis-cli -c -h 192.168.1.249 -p 7000 (这个命令可以指定连接到哪个服务器上的redis节点)
如果redis设置密码的话,操作前需要输入auth 密码
集群情况检查
在/usr/local/redis-3.2.4/src目录下执行(设置密码后不能直接执行此命令了,需要先
执行 ./redis-cli -c -h 192.168.1.248 -p 7003 再auth 密码 再执行cluster nodes
)
./redis-cli -c -h 192.168.1.248 -p 7003 cluster nodes
或者
./redis-trib.rb check 192.168.1.248:7003
端口号根据实际的来。
查看集群目前状况:
在/usr/local/redis-3.2.4/src目录下执行
-h可以指定ip,bind为ip的必须输入-h ip
./redis-cli -c -p 7000(这个只能连接bind为127.0.0.1的)
./redis-cli -h 192.168.1.249 -c -p 7000
连接成功后输入cluster info
示例说明了redis会自动跳转到key所在的节点服务器与端口上。 127.0.0.1:7000> set foo bar -> Redirected to slot [12182] located at 127.0.0.1:7002 OK 127.0.0.1:7002> set hello world -> Redirected to slot [866] located at 127.0.0.1:7000 OK 127.0.0.1:7000> get foo -> Redirected to slot [12182] located at 127.0.0.1:7002 "bar" 127.0.0.1:7000> get hello -> Redirected to slot [866] located at 127.0.0.1:7000 "world"
集群时密码设置
方法1.集群前设置密码
需要修改gem的redis工具下的一个文件,我这里是默认安装,路径如下:/usr/lib/ruby/gems/1.8/gems/redis-3.2.1/lib/redis/client.rb ,修改内容如下:
方法2.集群后设置密码
对每一个节点的redis.conf修改 requirepass 123456
然后重启即可