企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)

企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)

  • 前言
  • 一、redis安装并启动
  • 二、redis常用命令
  • 三、redis实现主从复制
  • 四、Sentinel分布式监控
  • 五、redis集群--Cluster
    • 1.手动创建集群
    • 2.脚本创建集群


前言

本章我们将学习redis。
redis是一种高级的存储系统,支持多种数据类型的存储,包括字符串、酸列、列表、集合和有序集合。


一、redis安装并启动

解压安装包

tar zxf redis-6.2.1.tar.gz

进入目录进行源码编译安装

cd redis-6.2.1/
make
make install

修改启动脚本
vim /root/redis-6.2.1/utils/install_server.sh
企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第1张图片
安装redis启动脚本

./install_server.sh

启动redis

/etc/init.d/redis_6379 start

企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第2张图片
交互式测试

redis-cli

企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第3张图片


二、redis常用命令

常用命令 含义
config get * 查看配置
select 1 选择数据库
flushdb 清空当前数据库
flushall 清空所有数据库
move key 1 移动key
del key 删除
rename oldkey newkey 改名
expire key 10 设置过期时间
persist key 设置持久化
persist key 查询
persist key 判断是否存在

三、redis实现主从复制

企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第4张图片

主机redis配置,使其监听所有网段
vim /etc/redis/6379.conf

企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第5张图片重启服务

/etc/init.d/redis_6379 restart

企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第6张图片从机安装redis,并配置相关文件
vim /etc/redis/6379.conf
在这里插入图片描述
在这里插入图片描述
重启服务

/etc/init.d/redis_6379 restart

企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第7张图片
测试:
主机交互式输入,在从机中可以查到
主机:
企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第8张图片从机:
企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第9张图片


四、Sentinel分布式监控

主要作用:当集群中的某个节点有故障时,可以自动的进行故障转移的操作。

监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。
提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。
自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器。

操作:
server 4中修改sentinel配置文件

cd redis-6.2.1/
ls
cp sentinel.conf /etc/redis/
cd /etc/redis/
ls

vim sentinel.conf 修改二处
企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第10张图片

84 sentinel monitor mymaster 172.25.9.5 6379 2

125 sentinel down-after-milliseconds mymaster 10000

在这里插入图片描述
在这里插入图片描述
将修改后的配置文件传给slave机

scp sentinel.conf server5:/etc/redis/
scp sentinel.conf server6:/etc/redis/

开始监控

redis-sentinel /etc/redis/sentinel.conf  #监控

企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第11张图片

其余两台机也开始监控
server5\6:

redis-sentinel /etc/redis/sentinel.conf

企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第12张图片
企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第13张图片

down掉master

redis-cli
showdown

企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第14张图片

可以看到监控两次后切换到了新的master
企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第15张图片

查看slave主机redis信息

redis-cli
info

企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第16张图片
原来的slave切换到成了master主机。

重启server4 变成了slave
企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第17张图片
企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第18张图片

查看server4的redis主配置文件
企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第19张图片

五、redis集群–Cluster

集群就是一组相互独立的计算机,通过高速的网络组成一个计算机系统,每个集群节点都是运行其自己进程的一个独立服务器。通过网络连接组合成一个组合来共同完一个任务。

在前面的实验中,虽然做了主从复制,但单个master的容量受机器内存限制,往往要做集群来提升容量

redis集群特点:
1.去中心化,不存在中心节点或者代理节点;
2.没有统一的入口,集群内部的节点是相互通信的(PING-PONG机制),每个节点都是一个redis实例;
3.redis-cluster 投票容错机制判断节点是否能够正常使用,少数过半判断节点down掉则判定节点down。
4.哈希槽:集群内置了16384个slot(哈希槽),将所有的物理节点映射到了这16384[0-16383]个slot上,或者说把这些slot均等的分配给了各个节点。注意:当任意一个节点挂掉后,集群将无法使用
5.redis集群最多有16384个节点。

1.手动创建集群

创建集群目录

cd /usr/local/
mkdir cluster
cd cluster
mkdir 7000 7001 7002 7003 7004 7005

编辑各个节点配置文件

cd 7000
vim redis.conf

企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第20张图片

启动集群

port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
daemonize yes
redis-server redis.conf
ps ax

企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第21张图片

cp 7000/redis.conf 7001/
cp 7000/redis.conf 7002/
cp 7000/redis.conf 7003/
cp 7000/redis.conf 7004/
cp 7000/redis.conf 7005/

编辑配置文件并启动所有集群
企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第22张图片

企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第23张图片

企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第24张图片

yum install tcl

企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第25张图片
创建集群并配对

redis-cli --cluster create --help
redis-cli --cluster create --cluster-replicas 1 127.0.0.1:7000  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 #创建集群并配对

企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第26张图片
企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第27张图片
测试:

redis-cli -c -p 7000
set name westos
get name

redis-cli -c -p 7000
get name
企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第28张图片

注意:重新启动集群需要进入指定集群目录

down掉其中的一个master
企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第29张图片
企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第30张图片
集群自动分配master

企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第31张图片

重新启动后变为slave
企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第32张图片

2.脚本创建集群

脚本创建集群

cd /root/redis-6.2.1/utils/create-cluster

企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第33张图片
生成集群

./create-cluster start

企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第34张图片

ps ax

企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第35张图片
集群配对

./create-cluster create

企业运维实战LAMP架构--redis(主从复制、Sentinel 分布式系统、redis集群)_第36张图片

redis-cli --cluster create --help #查看用法

你可能感兴趣的:(企业运维实战--lamp架构,运维,redis,分布式,数据库,服务器)