Linux中redis测试环境搭建3主3从

本文详细介绍了如何在Linux环境下搭建一个3主3从的Redis集群,包括下载、解压、配置文件的修改、启动多个实例、创建集群以及验证集群功能。还涉及了关闭集群和配置安全性的步骤。
摘要由CSDN通过智能技术生成

redis测试环境搭建3主3从

部署redis

systemctl status firewalld
#关闭防火墙
service firewalld stop  
cd /opt
wget http://download.redis.io/releases/redis-6.0.3.tar.gz

tar zxf redis-6.0.3.tar.gz     ##解压
cd redis-6.0.3
make && make install PREFIX=/usr/local/installredis #指定redis安装路径

#首先在/usr/local/下创建目录redis-cluster准备存放6个redis实例
cd /usr/local
mkdir redis-cluster
#进入redis-cluster目录创建6个文件夹 redis01、redis02、redis…
cd redis-cluster
mkdir redis01 redis02 redis03 redis04 redis05 redis06
#把redis安装路径下bin目录中的所有内容拷贝到redis01
cp -r /usr/local/installredis/bin/*  redis01
#此时redis01实例中还没有redis配置文件redis.conf,这个配置文件可以从redis解压目录拷贝,我的在/opt下
cp /opt/redis-6.0.3/redis.conf redis01

更改配置文件

#更改 redis01 配置文件redis.conf文件使它支持集群模式
vim redis01/redis.conf
#bind 192.168.206.5 (绑定当前机器ip)
  66 # IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
  67 # JUST COMMENT THE FOLLOWING LINE.
  68 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  69 bind 127.0.0.1 192.168.206.5
  70 
  71 # Protected mode is a layer of security protection, in order to avoid that
  72 # Redis instances left open on the internet are accessed and exploited.
  #port 7001
  91 # If port 0 is specified Redis will not listen on a TCP socket.
  92 port 7001
  93 
#daemonize yes
 203 # By default Redis does not run as a daemon. Use 'yes' if you need it.
 204 # Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
 205 daemonize yes
 206 
 207 # If you run Redis from upstart or systemd, Redis can interact with your
#pidfile /var/run/redis_7001.pid
 225 # Creating a pid file is best effort: if Redis is not able to create it
 226 # nothing bad happens, the server will start and run normally.
 227 pidfile /var/run/redis_7001.pid
 228 
 229 # Specify the server verbosity level.
 230 # This can be one of:
#appendonly yes
1036 # Please check http://redis.io/topics/persistence for more information.
1037 
1038 appendonly yes
1039 
1040 # The name of the append only file (default: "appendonly.aof")
#cluster-config-file nodes7001
1176 # Make sure that instances running in the same system do not have
1177 # overlapping cluster configuration file names.
1178 #
1179  cluster-config-file nodes-7001.conf
1180 
1181 # Cluster node timeout is the amount of milliseconds a node must be unreachable
1182 # for it to be considered in failure state.
#cluster-enabled yes(必须配置 启动集群模式)
1168 # started as cluster nodes can. In order to start a Redis instance as a
1169 # cluster node enable the cluster support uncommenting the following:
1170 #
1171  cluster-enabled yes
1172 
1173 # Every cluster node has a cluster configuration file. This file is not
1174 # intended to be edited by hand. It is created and updated by Redis nodes.

配置好redis01 实例之后复制出5个副本

cp redis01/* redis02
cp redis01/* redis03
cp redis01/* redis04
cp redis01/* redis05
cp redis01/* redis06
#分别用vi 或vim编辑各个实例的配置文件,此次修改仅仅需要关注7001的地方修改为对应端口
vim redis02/redis.conf
vim redis03/redis.conf
vim redis04/redis.conf
vim redis05/redis.conf
vim redis06/redis.conf

启动6个redis实例

#在redis-cluster目录下创建脚本文件start-all.sh
vim start-all.sh

cd redis01
./redis-server redis.conf
cd ..
cd redis02
./redis-server redis.conf
cd ..
cd redis03
./redis-server redis.conf
cd ..
cd redis04
./redis-server redis.conf
cd ..
cd redis05
./redis-server redis.conf
cd ..
cd redis06
./redis-server redis.conf
cd ..

#将start-all.sh 改为可执行文件
chmod u+x start-all.sh

#启动
./start-all.sh
#查看所有实例是否都能正常启动
ps -ef | grep redis

创建集群

#redis5.0及以上用如下命令启动
redis-cli --cluster create 192.168.206.5:7001 192.168.206.5:7002 192.168.206.5:7003 192.168.206.5:7004 192.168.206.5:7005 192.168.206.5:7006 --cluster-replicas 1

#如果是bash: redis-cli:未找到命令
#进入redis的安装路径下
cd /opt/redis-6.0.3
#将src目录里的redis-cli文件复制到/usr/local/bin/路径中
cp src/redis-cli /usr/local/bin

验证集群

#随便进入一个节点
redis-cli -c -h 192.168.206.5 -p 7001
#查看节点信息
cluster nodes
192.168.206.5:7001> CLUSTER NODES
c55b319b4a6dc9bf479b1f55b46ba8568d0f1e3e 127.0.0.1:7002@17002 master - 0 1712549003042 2 connected 5461-10922
800883a8c1756086192e9b3d1abd51193fdf4e3a 127.0.0.1:7004@17004 slave 9f1334600afc8e473f54eee71fa58ecb49df632c 0 1712549003000 4 connected
a8719501ed8c21fd99b3b347db03e46454e1f264 127.0.0.1:7005@17005 slave d02ee2677e79f70b580d9a4094e4580d6113665c 0 1712549002000 5 connected
d2d7c019030deafd7b367cb6a08def239755aec7 127.0.0.1:7006@17006 slave c55b319b4a6dc9bf479b1f55b46ba8568d0f1e3e 0 1712549002000 6 connected
d02ee2677e79f70b580d9a4094e4580d6113665c 192.168.206.5:7001@17001 myself,master - 0 1712549001000 1 connected 0-5460
9f1334600afc8e473f54eee71fa58ecb49df632c 127.0.0.1:7003@17003 master - 0 1712549004086 3 connected 10923-16383
192.168.206.5:7001> 
验证集群的存储
#写操作会在主节点之间转发,不一定存在哪个节点上。
#从节点的信息跟随的主节点存储的数据一致。

192.168.206.5:7001> ping
PONG
192.168.206.5:7001> set k1 v1
-> Redirected to slot [12706] located at 127.0.0.1:7003
OK
127.0.0.1:7003> set k2 v2
-> Redirected to slot [449] located at 127.0.0.1:7001
OK
127.0.0.1:7001> set k3 ve
OK
127.0.0.1:7001> set k4 v4
-> Redirected to slot [8455] located at 127.0.0.1:7002
OK
127.0.0.1:7002> set k5 v5
-> Redirected to slot [12582] located at 127.0.0.1:7003
OK
127.0.0.1:7003> set k6 v6
-> Redirected to slot [325] located at 127.0.0.1:7001
OK
127.0.0.1:7001> set k7 v7
OK
127.0.0.1:7001> set k8 v8
-> Redirected to slot [8331] located at 127.0.0.1:7002
OK
127.0.0.1:7002> set k9 v9
-> Redirected to slot [12458] located at 127.0.0.1:7003

关闭集群

#关闭是采用逐个节点shutdown的方法关闭,暂时还不知道官方有没有提供关闭脚本之类的
#创建集群之后,再使用相同的集群创建命令会报错
#解决:进入每个目录删掉节点信息相关文件,主要是和node相关的文件,
#rdb和aof文件,如需保留数据可以不用删除。
rm -rf appendonly.aof dump.rdb nodes-7005.conf nodes.conf


  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

怪兽王

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

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

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

打赏作者

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

抵扣说明:

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

余额充值