Reids集群服务搭建中,搭建的难点不在于Redis的安装,而是处理Ruby的安装和gem来安装reids服务,主要是由于Redis的集群工具是Ruby写的,所以需要安装Ruby的启动环境,这个Ruby环境搭建起来,还是挺多坑的
服务架构
redis的集群最低是6个节点,三主三从的架构模式
ip | 配置文件目录 |
---|---|
192.168.100.66:7001 | /usr/local/redis/redis-4.0.2/redis_cluster/7001/redis.conf |
192.168.100.66:7002 | /usr/local/redis/redis-4.0.2/redis_cluster/7002/redis.conf |
192.168.100.66:7003 | /usr/local/redis/redis-4.0.2/redis_cluster/7003/redis.conf |
192.168.100.66:7004 | /usr/local/redis/redis-4.0.2/redis_cluster/7004/redis.conf |
192.168.100.66:7005 | /usr/local/redis/redis-4.0.2/redis_cluster/7005/redis.conf |
192.168.100.66:7006 | /usr/local/redis/redis-4.0.2/redis_cluster/7006/redis.conf |
1、Redis单节点安装
1.1Redis安装
#安装编译所依赖的软件
yum -y install gcc gcc-c++ autoconf automake make
#编译redis
cd redis-4.0.2
make
##安装redis
#当然,为了方便,我们也可以将这些二进制文件单独安装到其他目录(这里的 PREFIX 需要使用大写)
#PREFIX 相当于把redis安装到(/usr/locl)目录下, 这样就不用配置环境变量,直接就能使用redis了
make install PREFIX=/usr/local
redis安装成功了,这个截图中,路径是有问题的,不要参考截图的,PREFIX=/usr/local
安装完成后,usr/local/bin/目录下,有redis的命令
1.2文件夹创建
创建每个节点的目录,对于redis来说,一个节点,就相当于是一个文件夹目录配置。需要配置redis.conf文件,来使服务生效。
mkdir -p /usr/local/redis/redis-4.0.2/redis_cluster/7001
mkdir -p /usr/local/redis/redis-4.0.2/redis_cluster/7002
mkdir -p /usr/local/redis/redis-4.0.2/redis_cluster/7003
mkdir -p /usr/local/redis/redis-4.0.2/redis_cluster/7004
mkdir -p /usr/local/redis/redis-4.0.2/redis_cluster/7005
mkdir -p /usr/local/redis/redis-4.0.2/redis_cluster/7006
1.3创建 /var/run/redis_7001.pid
端口好和pid文件需要对应,自己搭建的时候,也需要注意这点
echo 7001>/var/run/redis_7001.pid
echo 7002>/var/run/redis_7002.pid
echo 7003>/var/run/redis_7003.pid
echo 7004>/var/run/redis_7004.pid
echo 7005>/var/run/redis_7005.pid
echo 7006>/var/run/redis_7006.pid
1.4修改redis.config
我们有6个节点,所以6个节点都需要按照下面的配置,进行操作
vim
#redis后台运行
daemonize yes
#一定要绑定本机ip,不是默认的127.0.0.1,如果不绑定本机ip,外网连接不上
bind 192.168.100.66
#文件对应7000,7002,7003
pidfile /var/run/redis_7001.pid
#端口7001,7002,7003
port 7001
#设定redis数据存储路径
dir /usr/local/redis/redis-4.0.2/redis_cluster/7001
#开启集群 把注释#去掉
cluster-enabled yes
#集群的配置 配置文件首次启动自动生成 7000,7001,7002
cluster-config-file nodes_7001.conf
#请求超时 设置5秒够了
cluster-node-timeout 5000
#aof日志开启 有需要就开启,它会每次写操作都记录一条日志
appendonly yes
对于太多相同的配置,我们可以直接使用vim的替换命令:%s+7001+7003
将7001替换为7003
#vim的替换命令,将7001替换为7003
:%s+7001+7003
1.5启动服务
redis-server /usr/local/redis/redis-4.0.2/redis_cluster/7001/redis.conf
redis-server /usr/local/redis/redis-4.0.2/redis_cluster/7002/redis.conf
redis-server /usr/local/redis/redis-4.0.2/redis_cluster/7003/redis.conf
redis-server /usr/local/redis/redis-4.0.2/redis_cluster/7004/redis.conf
redis-server /usr/local/redis/redis-4.0.2/redis_cluster/7005/redis.conf
redis-server /usr/local/redis/redis-4.0.2/redis_cluster/7006/redis.conf
#查看服务
ps -ef|grep redis
查看服务启动情况
2、集群搭建
2.1安装ruby的执行环境
前面已经准备好了搭建集群的redis节点,接下来我们要把这些节点都串连起来搭建集群。官方提供了一个工具:redis-trib.rb看后缀就知道这鸟东西不能直接执行,它是用ruby写的一个程序,所以我们还得安装ruby.
集群管理的时候,有很多坑,所以我专门用一篇文章写了,Redis之集群redis-trib.rb环境的搭建-yellowcong
2.2安装redis 接口
简单来说,相当于安装了redis-trib.rb执行所需要的依赖包,相当于java的jar包
gem install redis
3、启动集群
解释下, –replicas 1 表示 自动为每一个master节点分配一个slave节点 上面有6个节点,程序会按照一定规则生成 3个master(主)3个slave(从)
#建立软连接,这样方便使用redis-trib.rb
ln -s /usr/local/redis/redis-4.0.2/src/redis-trib.rb /usr/local/bin/redis-trib.rb
#启动集群服务
./redis-trib.rb create --replicas 1 192.168.100.66:7001 192.168.100.66:7002 192.168.100.66:7003 192.168.100.66:7004 192.168.100.66:7005 1192.168.100.66:7006
4、测试连接
可以看到连接的是7001的节点,set name的时候计算了存在哪个hash槽上,会跳转到那个槽对应的节点
#-p 表示端口号
#-c 表示连接集群
redis-cli -p 7001 -c
从下面可以看出来,set节点数据的时候,计算放到哪一个节点上