centos7 搭建redis集群

由于公司爬虫业务扩大,单节点的redis已经不能满足现在的爬虫需求,所以,我要使用三台服务器搭建一个三主三从的redis集群

服务器准备

107.150..A:7000
107.150.
.B:7001
107.150.*.C:7002


107.150..A:7003
107.150.
.B:7004
107.150.*.C:7005

安装redis

# 安装依赖
yum install gcc
# 新建安装目录,进到相应目录
mkdir /data/Downloads
cd /data/Downloads
# 下载
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
# 下载完毕后开始解压
tar -zxvf redis-5.0.5.tar.gz

# 编译并安装
cd redis-5.0.5
make
make install PREFIX=/usr/local/redis
cd /usr/local/redis
# 新建日志目录
mkdir logs

# 将配置文件复制相应的目录
cp /usr/Downloads/redis-5.0.5/redis.conf  /usr/local/redis/bin
cd ./bin

修改配置文件

# 在每台集群上都执行相应的操作
# cat redis.conf | grep -v "#" | grep -v "^$" > redis-7000.conf
# 修改里面的配置文件
# vim redis.conf

# 端口
port 7000
# 开放所有
bind 0.0.0.0
# 保护模式
protected-mode no
# 守护模式
daemonize yes
# 备份目录
dir "/usr/local/redis/data"
# 密码
requirepass foobared
# 集群密码
masterauth foobared
# 日志
logfile "/usr/local/redis/logs/redis.log"
# MISCONF Redis配置为保存RDB快照,但目前它不能在磁盘上持久保存。可以修改数据集的命令被禁用,因为如果RDB快照失败(stop- writs -on-bgsave-error选项),这个实例被配置为在写期间报告错误
stop-writes-on-bgsave-error no
# 最大连接数
maxclients 100000
# 集群模式
cluster-enabled yes
# 集群本地配置文件(对集群的信息进行记录)
cluster-config-file nodes-7000.conf
# 集群是否所有节点都提供服务才代表正常
cluster-require-full-coverage no
在A服务器进行操作
sed "s/7000/7003/g" redis-7000.conf > redis-7003.conf
# 启动redis服务
redis-server ./redis-7000.conf
redis-server ./redis-7003.conf
在B服务器进行操作
sed "s/7000/7001/g" redis-7000.conf > redis-7001.conf
sed "s/7000/7004/g" redis-7000.conf > redis-7004.conf
# 启动redis服务
redis-server ./redis-7001.conf
redis-server ./redis-7004.conf
在C服务器进行操作
sed "s/7000/7002/g" redis-7000.conf > redis-7002.conf
sed "s/7000/7005/g" redis-7000.conf > redis-7005.conf
# 启动redis服务
redis-server ./redis-7002.conf
redis-server ./redis-7005.conf

在A服务器启动redis集群

# 5.0之后一条命令搞定
redis-cli --cluster create 107.150.*.A:7000 107.150.*.B:7001 107.150.*.C:7002 107.150.*.A:7003 107.150.*.B:7004 107.150.*.C:7005 --cluster-replicas 1 -a foobared

# 登录相应的redis并检查是否集群搭建成功
redis-cli -p 7000 -a foobared
>cluster nodes

tip

## 5.0之前
# 安装ruby环境
(1)下载ruby
wget https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.3.tar.gz
(2)安装ruby
tar -xvf ruby-2.6.3.tar.gz
cd ruby-2.6.3
./configure -prefix=/usr/local/ruby
make
make install
cd /usr/local/ruby
cp bin/ruby /usr/local/bin
cp bin/gem /usr/local/bin

# 查看ruby是否安装成功
ruby -v 

安装rubygem redis
wget https://rubygems.org/gems/rubygems-update-3.0.4.gem
 gem install -l rubygems-update-3.0.4.gem
gem install redis

 gem list -- check redis gem

安装redis-trib.rb
cp ${REDIS_HOME}/src/redis-trib.rb /usr/local/bin


# redis-trib构建集群  --replicas 1 每个主节点有一个从节点
./redis-trib.rb create --replicas 1 107.150.*.A:7000 107.150.*.B:7001 107.150.*.C:7002 107.150.*.A:7003 107.150.*.B:7004 107.150.*.C:7005

redis集群 Waiting for the cluster to join 一直等待

redis集群不仅需要开通redis客户端连接的端口,而且需要开通集群总线端口
集群总线端口为redis客户端连接的端口 + 10000
7000:17000
7001:17001
7002:17002
7003:17003
7004:17004
7005:17005
参考:https://www.cnblogs.com/wps54213/p/12571226.html
from rediscluster import RedisCluster

# pip install redis-py-cluster
redis_nodes = [{'host':'107.150.*.A','port':7000},
                    {'host': '107.150.*.B', 'port': 7001},
                    {'host': '107.150.*.C', 'port': 7002},
                    {'host': '107.150.*.A', 'port': 7003},
                    {'host': '107.150.*.B', 'port': 7004},
                    {'host': '107.150.*.C', 'port': 7005}]
redisconn = RedisCluster(startup_nodes=redis_nodes,password="foobared")

# redisconn.set("name","jack")
# print(redisconn.get("name"))

redisconn.lpush("age",18)
print(redisconn.lpop("age"))
# 检查集群 任意连接一个集群节点,进行集群状态检查
redis-cli --cluster check 107.150.*:7001 --cluster-search-multiple-owners -a foobared

# 修复集群
redis-cli --cluster fix 107.150.*:7001 --cluster-search-multiple-owners -a foobared

参考:https://www.cnblogs.com/zhoujinyi/p/11606935.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cocktail_py

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值