Redis集群搭建完整流程演示
更新时间:2020-03-27 17:23 浏览:97 关闭窗口 打印此页

? 前面叙述了有关redis的编译装置流程以及其装备优化的部分内容,本文旨在本地模仿redis服务器集群建立的流程演示。

? 在试验布置开端前,咱们需求理解为什么需求建立Redis集群,其处理了什么样的问题?又有哪些优势。咱们能够从单一的Redis服务器来探求这个问题。

? 假如布置过MySQL主从复制读写别离以及MHA高可用的话,这儿就十分简单想到单一Redis服务器所存在的问题,主要有以下几点:

1)存在单点故障;

2)不满意高并发的需求;

3)数据丢掉引发灾祸;

...

而处理这样的问题,最简单想到的便是将存储备份,且进行横向扩展。这就需求咱们建立Redis集群来满意事务需求了。

? Redis集群是一个供给在多个Redis间节点同享数据的程序集

? Redis集群并不支撑多处理多个Keys的指令,应为这需求在不同节点间移动数据,然后达不到像Redis那样的功用,在高负载的情况下可能会导致不行意料的过错

? Redis集群经过分区来供给必定程度的可用性,在实践环境中档某个节点宕机或则不行达的情况下持续处理指令

主动切割数据到不同节点上

整个集群的部分节点失利或不行达的情况下仍旧能够处理事务指令

? Redis集群没有运用一致性hash,而是引入了哈希槽的概念。Redis集群总共有16384个哈希槽,每个Key经过CRC16校验后对16384取模来决议怎么进行寄存,集群的每个节点担任一部分的hash槽。

? 在Redis集群中,支撑增加或许删去节点,且无需中止服务。

模仿为master节点的ip:20.0.0.139 20.0.0.144 20.0.0.145

模仿为slave节点的ip:20.0.0.140 20.0.0.142 20.0.0.143

1、装置编译环境及所需依靠库

[[email protected] ~]# yum install cpp binutils glibc-kernheaders glibc-common glibc-devel gcc gcc-c++ make wget -y

2、自行挑选离线装置仍是在线装置

[[email protected] ~]# wget http://download.redis.io/releases/redis-5.0.7.tar.gz #下载装置包,这儿是5.0.7版别的redis数据库
[[email protected] ~]# tar zxvf redis-5.0.7.tar.gz #解压
[[email protected] ~]# mv redis-5.0.7 /usr/local/redis #重命名
[[email protected] ~]# cd /usr/local/redis 
[[email protected] redis]# make #编译
[[email protected] redis]# cd src/
[[email protected] src]# make install #装置

3、修正装备文件

[[email protected] src]# cd ..
[[email protected] redis]# ls
00-RELEASENOTES COPYING Makefile redis.conf runtest-moduleapi src
BUGS deps MANIFESTO runtest runtest-sentinel tests
CONTRIBUTING INSTALL README.md runtest-cluster sentinel.conf utils
[[email protected] redis]# vim redis.conf
#对下面的参数进行修正装备
bind 127.0.0.1 #注释第70行的监听127地址,表明监听一切地址
protected-mode no #去掉第89行注释封闭安全维护
daemonize yes #去掉第137行注释,以独立进程发动
cluster-enabled yes #去掉第833行注释,敞开群集功用
cluster-config-file nodes-6379.conf #去掉第841行注释,群集称号文件设置
cluster-node-timeout 15000 #去掉第847行注释,群集超时时刻设置
appendonly yes #去掉第700行注释,敞开aof耐久化'

4、优化装备并敞开redis服务

[[email protected] redis]# mkdir -p /etc/redis
[[email protected] redis]# ln -s /usr/local/redis/redis.conf /etc/redis/6379.conf #
[[email protected] redis]# ln -s /usr/local/redis/utils/redis_init_script /etc/init.d/redisd #
[[email protected] redis]# service redisd start #
[[email protected] redis]# netstat -ntpl|grep redis
[[email protected] redis]# systemctl stop firewalld
[[email protected] redis]# setenforce 0

从服务器依照上述流程装备即可

[[email protected] redis]# yum -y install ruby rubygems #装置redis集群操控软件东西
[[email protected] ~]# ls
anaconda-ks.cfg redis-3.2.0.gem 模板 图片 下载 桌面
initial-setup-ks.cfg 公共 视频 文档 音乐
[[email protected] ~]# gem install redis --version 3.2.0 

5、查看两台服务器的redis服务是否都敞开,预备开端模仿创立集群

[[email protected] ~]# cd /usr/local/redis/src/
[[email protected] src]# redis-cli --cluster create 20.0.0.139:6379 20.0.0.144:6379 20.0.0.145:6379 20.0.0.140:6379 20.0.0.142:6379 20.0.0.143:6379 --cluster-replicas 1
 Performing hash slots allocation on 6 nodes...
Master[0] - Slots 0 - 5460
Master[1] - Slots 5461 - 10922
Master[2] - Slots 10923 - 16383
Adding replica 20.0.0.142:6379 to 20.0.0.139:6379
Adding replica 20.0.0.143:6379 to 20.0.0.144:6379
Adding replica 20.0.0.140:6379 to 20.0.0.145:6379
M: 8124ffa07c4618fbe870c25a950262884f16e45d 20.0.0.139:6379
 slots:[0-16383]  master
M: 8124ffa07c4618fbe870c25a950262884f16e45d 20.0.0.144:6379
 slots:[0-16383]  master
M: 8124ffa07c4618fbe870c25a950262884f16e45d 20.0.0.145:6379
 slots:[0-16383]  master
S: fbbdefd030893607cada298533f1610f988522ee 20.0.0.140:6379
 replicates 8124ffa07c4618fbe870c25a950262884f16e45d
S: fbbdefd030893607cada298533f1610f988522ee 20.0.0.142:6379
 replicates 8124ffa07c4618fbe870c25a950262884f16e45d
S: fbbdefd030893607cada298533f1610f988522ee 20.0.0.143:6379
 replicates 8124ffa07c4618fbe870c25a950262884f16e45d
Can I set the above configuration? : yes #这儿输入yes即可
 Nodes configuration updated
 Assign a different config epoch to each node
 Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join #几秒左右
 Performing Cluster Check 
M: 8124ffa07c4618fbe870c25a950262884f16e45d 20.0.0.139:6379
 slots:[0-16383]  master
 1 additional replica
S: fbbdefd030893607cada298533f1610f988522ee 20.0.0.140:6379
 slots:  slave
 replicates 8124ffa07c4618fbe870c25a950262884f16e45d
[OK] All nodes agree about slots configuration.
 Check for open slots...
 Check slots coverage...
[OK] All 16384 slots covered.

或参阅下图

6、体系查看一下:

?

7、验证数据写入与读取

[[email protected] ~]# redis-cli -h 20.0.0.140 -p 6379 -c #长途登录
20.0.0.140:6379 set popda 5
- Redirected to slot [13275] located at 20.0.0.139:6379
20.0.0.139:6379 exit
[[email protected] ~]# redis-cli -h 20.0.0.142 -p 6379 -c
20.0.0.142:6379 get popda
- Redirected to slot [13275] located at 20.0.0.139:6379
20.0.0.139:6379 

当然,布置Redis集群的方法计划还有许多,运用容器布置已经成为我们所喜欢的一向方法了。

上一篇文章:上一篇:没有了
下一篇文章 :下一篇:如何在SQLServer中处理亿万级别的数据
友情链接:

公司地址:江苏省南京市玄武区玄武湖

监督热线:4008-888-888