Centos7安装Redis单机、主从、哨兵、集群实操

一、单机安装步骤记录:

​
1、yum install wget

2、cd ~

3、mkdir /data/software(可创建其他目录)

4、cd /data/software

5、wget https://download.redis.io/releases/redis-6.2.6.tar.gz

6、tar xf redis-6.2.6.tar.gz

7、cd redis-6.2.6

8、vi README.md(查看README提供具体安装方法)

9、make

---yum install gcc

---make distclean

10、make

11、cd src

--- 可以看到生成了可执行程序

12、cd ..

13、指定安装路径(一般放在/usr/local/redis)

make install PREFIX=/usr/local/redis

启动测试:cd /usr/local/redis/bin

./redis-server(此时只是控制台启动,不是后台启动)

14、把源文件配置文件复制到/usr/local/redis/bin

cp /data/software/redis-6.2.6/redis.conf /usr/local/redis/bin

cd /usr/local/redis/bin

vi redis.conf修改配置文件属性daemonize

daemonize no -> daemonize yes

后台启动测试:./redis-server redis.conf

开启远程连接:找到bind 127.0.0.1 -::1,并注释掉

启用密码: 找到# requirepass foobared,把注释去掉foobared修改为自己的密码

requirepass 123456

15、vi /etc/profile(配置redis环境变量)

export REDIS_HOME=/usr/local/redis
export PATH=$PATH:$REDIS_HOME/bin

16、cd utils

17、./install_server.sh (可执行一次或多次)

  a)、一个物理机中可以有多个redis实例(进程),通过port区分

  b)、可执行程序就一份在目录,但是内存中未来的多个实例需要各自的配置文件,持久化目录等资源

  c)、service redis_6379 start/stop/status >   linux init.d(会出现实例启动文件)

  d)、脚本会帮助启动

18、查看redis进程

ps -fe|grep redis

​

二、集成布隆过滤器

1、访问redis.io

2、module集成

3、访问RedisBloom的github

https://github.com/RedisBloom/RedisBloom/archive/refs/heads/master.zip

4、linux中wget master.zip

5、yum install unzip

6、unzip master.zip

7、make

8、cp bloom.so /usr/local/redis/

9、redis-server --loadmodule /usr/local/redis/redisbloom.so

10、redis-cli

11、bf.add ooxx abc(往布隆过滤器添加值)

        bf.exits abc(判断值是否存在)

        bf.exits cde

12、cf.add #布谷鸟过滤器

三、主从复制集群搭建

1、主从规划,首先准备三个redis实例,例如端口号6380、6381、6382,操作都在一台虚拟机上进行

1)、进入redis源文件件夹utils文件夹,执行./install_server.sh创建三redis实例

cd /data/software/redis-6.2.6/utils
# 创建其他redis实例(输入实例的端口号、配置文件放置地址、数据持久化地址)
./install_server.sh
# 配置文件放置在/data/software/test,分别为6380.conf,6381.conf,6382.conf

2)redis实例创建好后,修改配置文件设置,关闭后台执行,方便查看主从复制结果

vim /data/software/test/6380.conf
# 找到 daemonize,设置成no
daemonize no

3)修改完配置需要重新启动三个redis节点,这里规定6382为主节点6380、6381分别都为从节点

# 主节点启动
redis-server /data/software/test/6382.conf
# 从节点启动,启动时配置跟随主节点
redis-server /data/software/test/6380.conf --replicof 127.0.0.1 6382
redis-server /data/software/test/6381.conf --replicof 127.0.0.1 6382

这样主从复制节点都启动了,主节点可以独写,从节点只能进行读

4)若主节点挂掉,需要重新切换主节点,假设6382宕机,我们把6380设置为主节点(当从节点变为主节点,别的从节点不会自动切换主节点,需要完全手动)

# 从节点变成主节点命令 replicaof no one
#实际操作
[root@localhost test]# redis-cli -p 6380
127.0.0.1:6380> replicaof no one

# 把6381指向的主节点切换到6380上(原来指向6382)
redis-cli -p 6281 --replicaof 127.0.0.1 6380
#实际操作
[root@localhost ~]# redis-cli -p 6281 --replicaof 127.0.0.1 6380

# 若6382节点此时重新启动需要指向6380主节点
redis-server ./6382.conf --replicof 127.0.0.1 6380
#实际操作
[root@localhost test]# redis-server ./6382.conf --replicof 127.0.0.1 6380

2、可使用proxy进行屏蔽集群节点:tewemproxy、predixy(性能比较高)

四、哨兵集群创建(方便主从高可用)

1、还是在/data/software/test文件夹下,新建26380.conf 、26381.conf 、26382.conf 哨兵配置文件

配置文件内容:

###########################26380.conf 配置如下 #############################
port 26380
# 监控6380 权重为2,主服务器判断为失效至少需要 2 个 Sentinel 同意
sentinel monitor mymaster 127.0.0.1 6380 2

###########################26381.conf 配置如下 #############################
port 26380
# 监控6380 权重为2,主服务器判断为失效至少需要 2 个 Sentinel 同意
sentinel monitor mymaster 127.0.0.1 6380 2

###########################26382.conf 配置如下 #############################
port 26380
# 监控6380 权重为2,主服务器判断为失效至少需要 2 个 Sentinel 同意
sentinel monitor mymaster 127.0.0.1 6380 2

2、分别启动三个哨兵节点

redis-server /data/software/test/26380.conf --sentinel
redis-server /data/software/test/26381.conf --sentinel
redis-server /data/software/test/26382.conf --sentinel

启动完成,可进行测试,手动把主节点进程停掉,看是否哨兵会自动切换主节点,原来的主节点重新启动,哨兵会自动把它切换成从节点,并且跟随新的主节点

五、集群(cluster)

1、规划集群规模为三主三从,端口号为7001、7002、7003、7004、7006、7006

使用install_server.sh命令,实例化节点,可参考"主从复制"实例化方式,配置文件放在

/data/software/cluster,修改6个节点配置文件

# cluster集群配置,打开集群模式(默认是单机)
cluster-enabled yes
# 设定节点配置文件名
cluster-config-file  nodes-7001.conf
# 设定节点失联时间,超过该时间(毫秒),集群自动进行主从切换。
cluster-node-timeout 15000

2、创建集群

# 指定从节点数量: --cluster-replicas 1
redis-cli --cluster create 127.0.0.1:7001  127.0.0.1:7002  127.0.0.1:7003  127.0.0.1:7004  127.0.0.1:7005  127.0.0.1:7006  --cluster-replicas 1

注意:集群要求限制必须至少要有3个master,每个从节点配置一个主节点的话,就必须需要6个节点

3、新增主从节点

1、添加主节点(127.0.0.1:7007为新增主节点,127.0.0.1:7000为集群中已存在的节点,可为集群中任一个已存在节点)
redis-cli --cluster add-node 127.0.0.1:7007 127.0.0.1:7001
2、重新分配hash槽位(127.0.0.1:7001为需要转移的master节点)
redis-cli --cluster reshard  127.0.0.1:7001
2.1、输入要转移的槽位(0~16384)
2.2、输入需要接收槽位的master节点Id
2.3、输入需要转移槽位的集群master节点id
2.4、选择分配hash槽的来源,输入all 代表集群槽位平均分配,输入done 代表在指定节点拿出指定数量的hash槽位
3、添加从节点
redis-cli --cluster add-node --cluster-slave --cluster-master-id 3b1bf4b44ec0c67645cc558bbdf1b65a4076b41b 127.0.0.1:7008 127.0.0.1:7007
# cluster-master-id 后边跟 主节点id
# 127.0.0.1:7008 是新加的从节点
# 127.0.0.1:7007 作为从节点的主节点

4、删除主从节点

1、移除从节点
# 从节点ip:端口号
# 从节点id
redis-cli --cluster del-node 127.0.0.1:7008 f95664b318ffd0a52792bff47dd329007bd2953a
2、移除主节点
注意:使用同样的方法移除主节点,不过在移除主节点前,需要确保这个主节点是空的. 如果不是空的,需要将这个节点的数据重新分片到其他主节点上.
替代移除主节点的方法是手动执行故障恢复,被移除的主节点会作为一个从节点存在,不过这种情况下不会减少集群节点的数量,也需要重新分片数据.
2.1 槽位转移
参考第三步槽位重新划分
2.2、删除主节点(同删除从节点命令)
redis-cli --cluster del-node 127.0.0.1:7007 3b1bf4b44ec0c67645cc558bbdf1b65a4076b41b

猜你喜欢

转载自blog.csdn.net/qq_21875331/article/details/120687460