Redis集群搭建和使用

注:本文按照原文作者的方法进行操作,安装目录,redis和ruby版本都一致,测试构建集群成功。并对原文进行简单修改,增加些许内容
安装环境与版本

*用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master、3 salve 环境。
* redis 采用 redis-3.2.4 版本。
*两台虚拟机都是CentOS7,ip分别为10.10.255.118和10.10.255.136

安装过程

1.下载并解压

cd /root/software
wget http://download.redis.io/releases/redis-3.2.4.tar.gz
tar -zxvf redis-3.2.4.tar.gz 

2.编译安装

cd redis-3.2.4
make && make install

3.将 redis-trib.rb 复制到 /usr/local/bin 目录下

cd src
cp redis-trib.rb /usr/local/bin/ 

4.创建 Redis 节点

首先在 10.10.255.118 机器上 /root/software/redis-3.2.4 目录下创建 redis_cluster 目录;

mkdir redis_cluster 

在 redis_cluster 目录下,创建名为7000、7001、7002的目录
直接分别进入7000,7001,7002,通过vim编辑器新建redis.conf,填入内容。示例如下:

cd 7000
vi redis.conf

填入内容:

port 7000
bind 10.10.255.118
daemonize yes
pidfile /var/run/redis_7000.pid
cluster-enabled yes
cluster-config-file nodes_7000.conf
cluster-node-timeout 15000
appendonly yes

最后 :wq保存
其他文件夹同样方法修改,要记住里面的port等内容要同步修改。

填入内容每一行的含义如下:

port  7000                                        //端口7000,7002,7003        
bind 本机ip                                       //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize    yes                               //redis后台运行
pidfile  /var/run/redis_7000.pid          //pidfile文件对应7000,7001,7002
cluster-enabled  yes                           //开启集群  把注释#去掉
cluster-config-file  nodes_7000.conf   //集群的配置  配置文件首次启动自动生成 7000,7001,7002
cluster-node-timeout  15000                //请求超时  默认15秒,可自行设置
appendonly  yes                           //aof日志开启  有需要就开启,它会每次写操作都记录一条日志 

接着在另外一台机器上(10.10.255.136)操作重复以上步骤,只是把目录改为7003、7004、7005,对应的配置文件也按照这个规则修改(ip记得修改)即可

5.启动各个节点

第一台机器上执行
cd /usr/local/bin
./redis-server /root/software/redis-3.2.4/redis_cluster/7000/redis.conf
./redis-server /root/software/redis-3.2.4/redis_cluster/7001/redis.conf
./redis-server /root/software/redis-3.2.4/redis_cluster/7002/redis.conf
另外一台机器上执行
cd /usr/local/bin
./redis-server /root/software/redis-3.2.4/redis_cluster/7003/redis.conf
./redis-server /root/software/redis-3.2.4/redis_cluster/7004/redis.conf
./redis-server /root/software/redis-3.2.4/redis_cluster/7005/redis.conf

6.检查 redis 启动情况
其中一台机器:

ps -ef | grep redis


root      3025     1  0 622 ?       00:00:58 ./redis-server 10.10.255.118:7000 [cluster]
root      3031     1  0 622 ?       00:00:57 ./redis-server 10.10.255.118:7002 [cluster]
root      3061     1  0 622 ?       00:00:56 ./redis-server 10.10.255.118:7001 [cluster]
root     16101 15005  0 10:23 pts/0    00:00:00 grep --color=auto redis

netstat -tnlp | grep redis


tcp        0      0 10.10.255.118:7001      0.0.0.0:*               LISTEN      3061/./redis-server 
tcp        0      0 10.10.255.118:7002      0.0.0.0:*               LISTEN      3031/./redis-server 
tcp        0      0 10.10.255.118:17000     0.0.0.0:*               LISTEN      3025/./redis-server 
tcp        0      0 10.10.255.118:17001     0.0.0.0:*               LISTEN      3061/./redis-server 
tcp        0      0 10.10.255.118:17002     0.0.0.0:*               LISTEN      3031/./redis-server 
tcp        0      0 10.10.255.118:7000      0.0.0.0:*               LISTEN      3025/./redis-server 

另一台机器:

ps -ef | grep redis

root      3171     1  0 622 ?       00:00:58 ./redis-server 10.10.255.136:7003 [cluster]
root      3175     1  0 622 ?       00:00:57 ./redis-server 10.10.255.136:7004 [cluster]
root      3179     1  0 622 ?       00:01:00 ./redis-server 10.10.255.136:7005 [cluster]
root     16074 16018  0 10:28 pts/0    00:00:00 grep --color=auto redis


netstat -tnlp | grep redis 


tcp        0      0 10.10.255.136:7003      0.0.0.0:*               LISTEN      3171/./redis-server 
tcp        0      0 10.10.255.136:7004      0.0.0.0:*               LISTEN      3175/./redis-server 
tcp        0      0 10.10.255.136:7005      0.0.0.0:*               LISTEN      3179/./redis-server 
tcp        0      0 10.10.255.136:17003     0.0.0.0:*               LISTEN      3171/./redis-server 
tcp        0      0 10.10.255.136:17004     0.0.0.0:*               LISTEN      3175/./redis-server 
tcp        0      0 10.10.255.136:17005     0.0.0.0:*               LISTEN      3179/./redis-server

7.创建集群
关闭两台机器的防火墙
然后安装ruby

yum -y install ruby ruby-devel rubygems rpm-build

gem install redis 

Redis 官方提供了 redis-trib.rb 这个工具,就在解压目录的 src 目录中,第三步中已将它复制到 /usr/local/bin 目录中,可以直接在命令行中使用了。进入bin目录使用下面这个命令即可完成安装

./redis-trib.rb  create  --replicas  1  10.10.255.118:7000 10.10.255.118:7001  10.10.255.118:7002 10.10.255.136:7003  10.10.255.136:7004  10.10.255.136:7005

然后会出现一长串,下面有一句:
Can I set the above configureation?(type 'yes' to accept):

输入 yes 即可

8.集群验证
在第一台机器上连接集群的7002端口的节点,在另外一台连接7005节点,连接方式为:

进入bin目录

./redis-cli -h 10.10.255.118 -c -p 7002

加参数 -C 可连接到集群,因为上面 redis.conf 将 bind 改为了ip地址,所以 -h 参数不可以省略。

在7005节点上执行命令:

10.10.255.136:7005> set dog wangwangwang

在另一台机器的7000节点上执行命令:

10.10.255.118:7000> get dog
-> Redirected to slot [254] located at 10.10.255.136:7003
"wangwangwang"
10.10.255.136:7003> 

以上说明集群正常

9.redis集群设置密码
*如果是使用redis-trib.rb工具构建集群,集群构建完成前不要配置密码,集群构建完毕再通过config set + config rewrite命令逐个机器设置密码
*如果对集群设置密码,那么requirepass和masterauth都需要设置,否则发生主从切换时,就会遇到授权问题,可以模拟并观察日志
*各个节点的密码都必须一致,否则Redirected就会失败

    config set masterauth wang 
    config set requirepass wang  
    config rewrite  

在config rewrite这一步的时候会报错:(error) NOAUTH Authentication required.这里输入刚才设置的密码就行了,命令为:auth wang,修改成功后,redis.conf被修改为
这里写图片描述
以后进行操作将需要输入密码。

10.redis可视化工具
下载地址:redis可视化工具

文章转载地址Redis集群搭建与简单使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值