redis集群及主从服务部署

linux学习 专栏收录该内容
27 篇文章 1 订阅

前言:
RDBMS:即关系数据库管理系统(Relational Database Management System)
许多Web应用都将数据保存到 RDBMS中,应用服务器从中读取数据并在浏览器中显示。 但随着数据量的增大、访问的集中,就会出现RDBMS的负担加重、数据库响应恶化、 网站显示延迟等重大影响。Memcached/redis是高性能的分布式内存缓存服务器,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web等应用的速度、 提高可扩展性。
缓存服务器作用
加快访问速度 缓解数据库压力。
NOSQL(Not Only SQL)
为弥补关系型数据库的不足,各种各样的NoSQL数据库应运而生。
以键值对的方式存储数据
缓存数据库
产品:
redis
memcached
mongoDB
redis简介:redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。
redis官网:redis.io
redis的特点: 丰富的数据结构、支持持久化、支持事务、支持主从。
事务是指“一个完整的动作,要么全部执行,要么什么也没有做”。
支持主从

部署过程:
三台主机:
ip:192.168.237.21 hostname:redis1
ip:192.168.237.22 hostname:redis2
ip:192.168.237.23 hostname:redis3
三台主机同时部署安装Redis.
1.获取tar包

# wget http://download.redis.io/releases/redis-4.0.9.tar.gz -O /redis-4.0.9.tar.gz

2.进入资源目录

#  cd /

3.解压缩安装包

# tar xzf redis-4.0.9.tar.gz

4.进入安装包所在目录

# cd /redis-4.0.9/

5.下载编译器

# yum install gcc-c++ -y

6.编译安装

# make

7.设置开机启动

# mkdir  /etc/redis
# cp   /redis-4.0.9/redis.conf  /etc/redis/6379.conf
# cp /redis-4.0.9/utils/redis_init_script   /etc/init.d/redis
# vim  /etc/init.d/redis

注意:只改其中的的5,6,8, 10, 22行的内容
在这里插入图片描述

# chmod   777 /etc/init.d/redis

增加开机启动设置
chkconfig --list
redis 0:关 1:关 2:开 3:开 4:开 5:开 6:关

# chkconfig --add redis     

增加redis开机启动

# chkconfig redis on

重新加载自启动信息

# systemctl daemon-reload

启动redis

# systemctl start redis

8.测试:

[root@ergou redis-4.0.9]# /redis-4.0.9/src/redis-cli 
127.0.0.1:6379> set name wiger
OK
127.0.0.1:6379> get name
"wiger"

另外两台安装如上8步操作配置即可。

Redis主从配置
切记:关闭三台服务器的firewall和Selinux
1.配置master 192.168.237.21

# vim /etc/redis/6379.conf 
	
	#bind 127.0.0.1
	bind 0.0.0.0                 #监听本机所有地址
	#protected-mode yes
	protected-mode no      #关闭保护模式
# systemctl  restart  redis

2.配置slave1 192.168.237.22

# vim /etc/redis/6379.conf
slaveof 192.168.237.21  6379
bing  0.0.0.0
protected-mode no
# systemctl restart redis

3.配置slave3 192.168.237.23

# vim /etc/redis/6379.conf
slaveof 192.168.237.21  6379
bing  0.0.0.0
protected-mode no
# systemctl restart redis

测试:
数据一致性
master1记录键值对
slave1/2查询数据,验证数据一致性
master1:
在这里插入图片描述
slave1:
在这里插入图片描述
slave2:
在这里插入图片描述 Redis Sentinel
Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案。实际上这意味着你可以使用Sentinel模式创建一个可以不用人为干预而应对各种故障的Redis部署。
作用:
1):Master状态检测
2):如果Master异常,则会进行Master-Slave切换,将其中一个Slave作为Master,将之前的Master作为Slave
3):Master-Slave切换后,master_redis.conf、slave_redis.conf和sentinel.conf的内容都会发生改变,即master_redis.conf中会多一行slaveof的配置,sentinel.conf的监控目标会随之调换

工作方式:
1):每个Sentinel以每秒钟一次的频率向它所知的Master,Slave以及其他 Sentinel 实例发送一个 PING 命令
2):如果一个实例(instance)距离最后一次有效回复 PING 命令的时间超过 down-after-milliseconds 选项所指定的值, 则这个实例会被 Sentinel 标记为主观下线。
3):如果一个Master被标记为主观下线,则正在监视这个Master的所有 Sentinel 要以每秒一次的频率确认Master的确进入了主观下线状态。
4):当有足够数量的 Sentinel(大于等于配置文件指定的值)在指定的时间范围内确认Master的确进入了主观下线状态, 则Master会被标记为客观下线

步骤,三台服务器都要做以下3步

  1. 每台机器上修改redis主配置文件设置:bind 0.0.0.0
  2. 每台机器上修改sentinel配置文件:添加如下配置
vim /redis-4.0.9/sentinel.conf
        sentinel monitor mymaster 192.168.0.109 6379 2
        sentinel down-after-milliseconds mymaster 3000
        sentinel failover-timeout mymaster 10000
        protected-mode no

3.启动每台机器服务

 # cd  /redis-4.0.9
 # ./src/redis-sentinel sentinel.conf

测试结果,如下表示服务正常
master:
在这里插入图片描述
slave1
在这里插入图片描述
slave2在这里插入图片描述
主从转换
模拟主服务器master宕掉后,此时从服务器身份会发生改变:

# systemctl stop redis

此时,就会在两个slave中投票选举一个充当主服务器
在这里插入图片描述
可以看到,redis2的角色法发生转变
在这里插入图片描述
如果此时,将redis1服务器重新上线,那么角色就是从服务器,只有redis2扮演的主服务器宕机后,就又会投票选举合适的主服务器。

初来乍到,请多指教。

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值