提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


文章目录

  • 前言
  • 一、主从,哨兵模式搭建
  • 1.主从
  • 1.哨兵
  • 二、集群搭建
  • 1.安装
  • 2.修改配置文件redis.conf
  • 3.复制
  • 4.写个批处理启动
  • 5.创建Redis集群(创建时Redis里不要有数据)
  • 6.使用
  • 7.扩容
  • 1.添主
  • 2.添从
  • 8.缩容
  • 总结



前言

我们采用Redis多机和集群的方式来保证Redis的高可用性。
单进程+单线程 + 多机 (集群)。
redis下载: https://www.redis.net.cn/download/.

虚拟机地址:192.168.142.135


提示:以下是本篇文章正文内容,下面案例可供参考

一、主从,哨兵模式搭建

1.主从

搭建分布式redis 分布式redis集群搭建_搭建分布式redis


1.安装redis到redis-master下

[root@localhost redis-ms]# cd /install/redis-4.0.9/src/
[root@localhost src]# make install PREFIX=/install/redis-ms/redis-master

Hint: It's a good idea to run 'make test' ;)

    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
[root@localhost src]# cp /install/redis-4.0.9/redis.conf  /install/redis-ms/redis-master/bin

2.主redis.conf

# 将`daemonize`由`no`改为`yes` 
daemonize yes 
# 默认绑定的是回环地址,默认不能被其他机器访问 
# bind 127.0.0.1
# 是否开启保护模式,由yes该为no
protected-mode no

3.从库

[root@localhost bin]# cp -r /install/redis-ms/redis-master/* /install/redis-ms//redis-slave1
[root@localhost bin]# cp -r /install/redis-ms/redis-master/* /install/redis-ms//redis-slave2

#redis.conf
port 6380
replicaof 127.0.0.1 6379

搭建分布式redis 分布式redis集群搭建_Redis_02

1.哨兵

sentinel.conf

sentinel monitor mymaster 127.0.0.1 6379 2

二、集群搭建

1.安装

安装到指定目录,并复制redis.conf到bin下

[root@localhost src]# cd /install/redis-5.0.4/src/
[root@localhost src]# make install PREFIX=/install/redis-cluster-5.0.4/7001
[root@localhost src]# cp /install/redis-5.0.4/redis.conf /install/redis-cluster-5.0.4/7001/bin
[root@localhost src]# cd /install/redis-cluster-5.0.4/7001/bin

2.修改配置文件redis.conf

第一步:daemonize no(默认),改成 yes,意思是是否要后台启动
第二步:创建7001实例,并编辑redis.conf文件,修改port为7001。
第三步:修改redis.conf配置文件,打开cluster-enable yes
第四步:#bind 127.0.0.1
第五步:protected-mode yes修改为no支持程序代码访问

3.复制

[root@localhost bin]# cp -r /install/redis-cluster-5.0.4/7001/* /install/redis-cluster-5.0.4/7002
[root@localhost bin]# cp -r /install/redis-cluster-5.0.4/7001/* /install/redis-cluster-5.0.4/7003
[root@localhost bin]# cp -r /install/redis-cluster-5.0.4/7001/* /install/redis-cluster-5.0.4/7004
[root@localhost bin]# cp -r /install/redis-cluster-5.0.4/7001/* /install/redis-cluster-5.0.4/7005
[root@localhost bin]# cp -r /install/redis-cluster-5.0.4/7001/* /install/redis-cluster-5.0.4/7006

依次修改redis.conf的端口

4.写个批处理启动

[root@localhost redis-cluster-5.0.4]# vim start.sh
cd 7001/bin 
./redis-server redis.conf
cd ..
cd ..
cd 7002/bin
./redis-server redis.conf
cd ..
cd ..
cd 7003/bin./redis-server redis.confcd ..
cd ..
cd 7004/bin
./redis-server redis.conf
cd ..
cd ..
cd 7005/bin
./redis-server redis.conf
cd ..
cd ..
cd 7006/bin
./redis-server redis.conf
cd ..
cd ..


chmod u+x start.sh (赋写和执行的权限)
./start.sh(启动RedisCluster)

补充,清空集群数据
.、rvCluserData.sh

# 删除集群遗留任何数据

cd /install/redis-cluster-5.0.4/7001/bin/;rm -rf dump.rdb nodes.conf
cd /install/redis-cluster-5.0.4/7002/bin/;rm -rf dump.rdb nodes.conf
cd /install/redis-cluster-5.0.4/7003/bin/;rm -rf dump.rdb nodes.conf 
cd /install/redis-cluster-5.0.4/7004/bin/;rm -rf dump.rdb nodes.conf
cd /install/redis-cluster-5.0.4/7005/bin/;rm -rf dump.rdb nodes.conf
cd /install/redis-cluster-5.0.4/7006/bin/;rm -rf dump.rdb nodes.conf 
cd /install/redis-cluster-5.0.4/7007/bin/;rm -rf dump.rdb nodes.conf
cd /install/redis-cluster-5.0.4/7008/bin/;rm -rf dump.rdb nodes.conf
cd ..
cd ..

5.创建Redis集群(创建时Redis里不要有数据)

去到7001/bin

# cluster-replicas : 1 1从机 前三个为主 
[root@localhost bin]# ./redis-cli --cluster create 192.168.142.135:7001 192.168.142.135:7002 192.168.142.135:7003 192.168.142.135:7004 192.168.142.135:7005 192.168.142.135:7006 --cluster-replicas 1

>>> Performing Cluster Check (using node 192.168.142.135:7001)
M: ad3d314b361a338ed170a08d049ad878bcc9756d 192.168.142.135:7001
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
M: 3139586b034b30b7d75ce6957ab214d67843e60c 127.0.0.1:7002
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: 678db4d37645df694b4fd5fd61341ef413759969 127.0.0.1:7004
   slots: (0 slots) slave
   replicates ad3d314b361a338ed170a08d049ad878bcc9756d
S: 4ab1d59ea380e4317940a1a1bfd0848f20620f70 127.0.0.1:7006
   slots: (0 slots) slave
   replicates 5d1aebcfa1cc994aa4d062d82e4091934e125135
M: 5d1aebcfa1cc994aa4d062d82e4091934e125135 127.0.0.1:7003
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: ed75bb177e02a7549d1128fe3163870b26baea18 127.0.0.1:7005
   slots: (0 slots) slave
   replicates 3139586b034b30b7d75ce6957ab214d67843e60c

Could not connect to Redis at 192.168.142.135:7001: Connection refusednot connected>
解决方法:bind 127.0.0.1 192.168.142.135
注释掉redis配置文件/etc/redis.conf中bind指令 # bind 127.0.0.1

分配成功后查看node.conf

搭建分布式redis 分布式redis集群搭建_搭建分布式redis_03

6.使用

注意加-c,重定向作用

[root@localhost bin]# ./redis-cli  -h 192.168.142.135 -p 7001 -c
192.168.142.135:7001> get name
-> Redirected to slot [5798] located at 127.0.0.1:7002
"zhangfei"
127.0.0.1:7002>

查看状态

127.0.0.1:7002> cluster info

查看节点

127.0.0.1:7003> cluster nodes

7.扩容

1.添主

[root@localhost bin]# ./redis-cli --cluster add-node 192.168.142.135:7007 192.168.142.135:7001

分槽,hash槽重新分配(数据迁移)

./redis-cli --cluster reshard 192.168.142.135:7007

搭建分布式redis 分布式redis集群搭建_bc_04


三段槽说明每一个都分了一段给7007

搭建分布式redis 分布式redis集群搭建_Redis_05

2.添从

./redis-cli --cluster add-node 192.168.142.135:7008 192.168.142.135:7007 --cluster-slave --cluster-master-id abd1bd088d588030a5d0c787911b0a276573ef52(7007的节点id)

8.缩容

./redis-cli --cluster del-node 192.168.127.128:7008 6be94480315ab0dd2276a7f70c82c578535d6666

删除已经占有hash槽的结点会失败,报错如下:
[ERR] Node 192.168.127.128:7008 is not empty! Reshard data away and try again.
需要将该结点占用的hash槽分配出去。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。