redis集群搭建的详细过程

本文详述了在Linux环境下搭建Redis集群的完整过程,包括配置文件设置、启动实例、创建集群、主从关系验证以及故障模拟与恢复。通过集群,实现了数据的自动分割和高可用性,确保在部分节点故障时仍能继续处理命令。
摘要由CSDN通过智能技术生成

最近在研究redis,那就把自己搭建redis集群的过程粘出来,希望几个月后的自己还记得。

redis集群搭建

Redis在3.0版本开始正式引用集群特性,Redis集群是一个分布式,Redis 集群是一个提供在多个Redis间节点间共享数据的程序集。

Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性能,在高负载的情况下可能会导致不可预料的错误.

Redis 集群通过分区来提供一定程度的可用性,在实际环境中当某个节点宕机或者不可达的情况下继续处理命令. Redis 集群的优势:

  1. 自动分割数据到不同的节点上。
  2. 整个集群的部分节点失败或者不可达的情况下能够继续处理命令。

 

环境A:3台服务器,每台服务器启动6379和6380两个redis服务实例,适用于测试环境

192.168.11.137:6379/6380  liu-node1

192.168.11.138:6379/6380  liu-node2

192.168.11.139:6379/6380  liu-node3

另外预留一台服务器做集群添加节点测试。

192.168.11.140:6379/6380  liu-test

注意:1、每个redis节点采用相同的硬件配置、相同的密码(如果设定了密码)、相同的redis版本。

  1. 所有redis服务器必须没有任何数据
  2. 现启动为单机的redis且没有任何的key vaule
  3. 利用redis的不同端口设置redis的从服务器为6380端口

 

1、搭建集群的第一件事是需要一些运行在集群模式的redis实例。在所有3台主机中都安装redis。分别在三台机器中创建一个新的目录/redis-cluste。并创建2个以端口号为名字的子目录6379,6380,稍后在每个子目录中运行redis实例。(node2,node3相同)

[root@liu-node1 ~]# mkdir /redis-cluster

[root@liu-node1 redis-cluster]# mkdir 6379 6380

[root@liu-node1 redis-cluster]# wget  https://download.redis.io/releases/redis-6.0.10.tar.gz

[root@liu-node1 redis-cluster]#wget  https://github.com/jemalloc/jemalloc/releases/download/5.2.1/jemalloc-5.2.1.tar.bz2

[root@liu-node1 redis-cluster]# yum  -y  install  gcc-c++  automake  autoconf  libtool  make

[root@liu-node1 redis-cluster]# bzip2  -dv  jemalloc-5.2.1.tar.bz2

[root@liu-node1redis-cluster]# tar xvf  jemalloc-5.2.1.tar

[root@liu-node1 redis-cluster]# cd jemalloc-5.2.1/

[root@liu-node1 jemalloc-5.2.1]# ./autogen.sh

[root@liu-node1 jemalloc-5.2.1]# make  -j   6

[root@liu-node1 jemalloc-5.2.1]# make  install

[root@liu-node1 redis-cluster]# tar xzf redis-6.0.10.tar.gz

[root@liu-node1 redis-cluster]# cd redis-6.0.10/deps

[root@liu-node1 deps]# make lua  hiredis  linenoise

[root@liu-node1 deps]# cd  /root/redis-6.0.10/

[root@liu-node1 redis-6.0.10]# make

 

2、在每个节点的6379,6380子文件中各创建一个redis.conf文件,文件的内容如下(配置中的端口号需要改成与文件相同的号码)

[root@liu-node3 6379]# cat  redis.conf

bind 0.0.0.0

port 6379

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

appendonly yes

daemonize yes

masterauth liu

requirepass liu

[root@liu-node3 6380]# cat  redis.conf

port 6380

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

appendonly yes

daemonize yes

masterauth liu

requirepass liu

 

配置中的cluster-enabled选项用于打开实例的集群模式,而 cluster-conf-file 选项则设定了保存节点配置文件的路径, 默认值为 nodes.conf.节点配置文件无须人为修改, 它由 Redis 集群在启动时创建, 并在有需要时自动进行更新。

 

3、使用类似以下命令, 在每个标签页中打开一个实例:

[root@liu-node1 6379]# ./../redis-6.0.10/src/redis-server  ./redis.config           

[root@liu-node1 6379]# cd ../6380/

[root@liu-node1 6380]# ./../redis-6.0.10/src/redis-server  ./redis.config

[root@liu-node1 6380]# ps  -ef | grep  redis

查看进程的状态

 

搭建集群

现在已经有了6个正在运行中的redis实例,接下来使用这些实例来创建集群,并为每个节点编写配置文件。

[root@liu-node1 redis-6.0.10]# ./src/redis-cli -a liu  --cluster create     192.168.11.137:6379 192.168.11.137:6380 192.168.11.138:6379 192.168.11.138:6380 192.168.11.139:6379 192.168.11.139:6380  --cluster-replicas 1

-a: 指定设置的密码(如果密码参数没有设定就不需要指定)

--cluster-replicas 1:表示每个master对应一个slave节点

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值