学习记录02 --- redis数据库的安装,以及主从复制和哨兵模式开启

emmmmmm,这个其实是28号老师布置下来的任务,但博客今天才开,思来想去还是把昨天的给补上吧,按住顺序来吧!

1、redis的安装

redis数据库的安装并不难,首先安装好依赖,因为redis是C语言编写,需要安装gcc来编译

yum install gcc-c++ -y(安装gcc)

执行上面的命令就安装完了gcc,接下来我们需要一个目录,用来安装redis

我是安装在/usr/local/redis里面的,所以直接执行下面的代码就可以创建一个目录

mkdir /usr/local/redis

当然,还得需要下载redis,下面贴出官网,可能需要魔法上网

https://redis.io/

我是在官网下的5.0.5版本的,不知道是不是最新的

下载来后上传到/usr/local,用下面的一系列操作即可完成安装

cd /usr/local  先进入到这个目录

tar -zvxf redis-5.0.5.tar.gz  解压出来

cd redis-5.0.5  进入到解压的目录

make  开始编译

make PREFIX=/usr/local/redis install  安装到/usr/local/redis

这样只是安装好了,还需要配置conf,把安装包里面的conf复制过去就行了

cd /root/redis-5.0.5

cp redis.conf  /usr/local/redis/bin/ (复制配置文件)

然后还需要修改conf文件中的一些配置

vi  /usr/local/redis/bin/redis.conf(修改/usr/local/redis/bin/redis.conf)

因为默认情况下,redis不是后台运行,我们需要找到daemonize,把值改成yes

还有databases后面的值,表示多少个实例,我改成了32

启动的话,用redis-server就可以,完整的执行命令是下面的

/usr/local/redis/bin/redis-server  /usr/local/redis/bin/redis.conf

但是每次开启或者关闭都要输入这么长,太麻烦了,我干脆就把redis的bin目录添加到了path

所以我们每次启动就只需要下面这样就可以了

redis-server  /usr/local/redis/bin/redis.conf

使用redis-cli就可以测试是否正常启动了

当然,可以修改下/etc/rc.local,让redis开机就启动

2、主从复制

emmm,最开始看到这个一脸懵逼,后来看了几篇文章后有了个大概,我用自己的话来表达下哈

主从复制就是建立一个和主数据库一模一样的数据库,而这个数据库就叫做从数据库,每次主数据库更新数据只是把更新的几行复制给从数据库,从数据库只做读操作,写操作都交给主数据库,这就是读写分离,使用主从复制和读写分离的好处就是可以减少服务器的负担,哪怕主数据库在写入大量数据占用资源时,也丝毫不影响前台读数据的速度,同时当主数据库挂掉的时候,从数据库也依然能够工作,不会影响正常使用。

这段话是我自己理解的,当然不够深刻,望谅解哈,解压来配置主从复制了。

把原先的redis.conf再拷贝一份,改个名字,就叫做redis6380.conf

cp /usr/local/redis/bin/redis.conf /usr/local/redis/bin/redis6380.conf

一般来说要多个服务器,但我电脑如果开多个虚拟机有点吃不消,就在一台虚拟机上完成也是可以的,要注意修改端口号

修改redis6380.conf,在里面加入slaveof 192.168.200.128 6379    

这个ip是我虚拟机的ip,如果是看我这个教程配置的改成自己的ip(emmmmmm,写的这么烂真的有人看么)

别忘了要把port改成6380,接下来的启动顺序就是先启动主数据库,然后启动从数据库,这样主从复制便完成了

3、哨兵模式

emmmmm,还是先了解什么是哨兵模式,然后再开始动手

哨兵模式就是用一个或者多个哨兵实例组成的,对redis的所有节点进行监控,每隔一段时间会向主节点发送命令,如果主节点没有回应,就是出现了故障,主节点出现故障后,会将从节点中选一个升为主节点,确保数据库能够正常工作。

首先创建哨兵模式的sentinel.conf文件,和端口号对应,所以名称取为sentinel-26379.conf比较容易区分

下面则是配置内容

port 26379
daemonize yes
logfile "26379.log"
dir "./"
sentinel monitor mymaster 192.168.200.128 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 15000
sentinel auth-pass mymaster 123
bind 192.168.200.128 127.0.0.1

当然还有从数据库的,也就是配置从节点

port 26380
daemonize yes
logfile "26380.log"
dir "./"
sentinel monitor myslave 192.168.200.128 6379 2
sentinel down-after-milliseconds myslave 30000
sentinel parallel-syncs myslave 1
sentinel failover-timeout myslave 15000
sentinel auth-pass myslave 123
bind 192.168.200.128 127.0.0.1

两个配置好后,只需要执行下面2句命令即可启动哨兵模式

sentinel-26379.conf ./src/redis-sentinel sentinel-26379.conf

sentinel-26379.conf ./src/redis-sentinel sentinel-26380.conf

关于配置文件一些字段的解释

sentinel monitor <master-name> <ip> <redis-port> <quorum>
告诉sentinel去监听地址为ip:port的一个master,这里的master-name可以自定义,quorum是一个数字,指明当有多少个sentinel认为一个master失效时,master才算真正失效

sentinel auth-pass <master-name> <password>
设置连接master和slave时的密码,注意的是sentinel不能分别为master和slave设置不同的密码,因此master和slave的密码应该设置相同。

sentinel down-after-milliseconds <master-name> <milliseconds>
这个配置项指定了需要多少失效时间,一个master才会被这个sentinel主观地认为是不可用的。 单位是毫秒,默认为30秒

sentinel parallel-syncs <master-name> <numslaves>
这个配置项指定了在发生failover主备切换时最多可以有多少个slave同时对新的master进行 同步,这个数字越小,完成failover所需的时间就越长,但是如果这个数字越大,就意味着越 多的slave因为replication而不可用。可以通过将这个值设为 1 来保证每次只有一个slave 处于不能处理命令请求的状态。

sentinel failover-timeout <master-name> <milliseconds>
failover-timeout 可以用在以下这些方面:     
1. 同一个sentinel对同一个master两次failover之间的间隔时间。   
2. 当一个slave从一个错误的master那里同步数据开始计算时间。直到slave被纠正为向正确的master那里同步数据时。    
3.当想要取消一个正在进行的failover所需要的时间。    
4.当进行failover时,配置所有slaves指向新的master所需的最大时间。不过,即使过了这个超时,slaves依然会被正确配置为指向master,但是就不按parallel-syncs所配置的规则来了。

原文地址:https://www.cnblogs.com/huajidafahao/p/11266480.html

时间: 2024-10-14 00:55:25

学习记录02 --- redis数据库的安装,以及主从复制和哨兵模式开启的相关文章

redis学习三,Redis主从复制和哨兵模式

Redis主从复制 java架构师项目实战,高并发集群分布式,大数据高可用,视频教程 1.Master可以拥有多个slave 2.多个slave可以连接同一个Master外,还可以连接到其他的slave 3.主从复制不会阻塞Master在主从复制时,Master可以处理client请求. 4.提供系统的伸缩性. 主从复制的过程 1.slave与Master建立连接,发送sync同步命令. 也就是说当用户在Master写入一条命令后,他们之间会通过一些算法把数据同步到每一个slave上. 2.Ms

redis的主从复制和哨兵模式

Redis主从复制是什么? 行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主 Redis主从复制能干些什么? (1)读写分离 (2)容灾恢复 Redis配置主从复制(1主2从) 知识注意: (1)配从(库)不配主(库) (2)从库配置:slaveof 主库IP 主库端口 (3)info replication查看当前redis节点信息(是主还是从等等) redis配置1主2从 开始配置: 这里

(Windows Maven项目)Redis数据库的安装和操作实现

Redis是一个内存数据库,他会把你写入当中的数据缓存到内存中,之后会周期性的往磁盘中写入.这篇文章中介绍的是在Windows环境下利用Maven工具编译运行Java文件实现Redis数据库的操作.         首先.我们须要下载Redis工具:http://redis.io/download,之后解压就能够了.我们会看到解压的文件夹下存在着这样一些文件: 当中,两个可运行文件须要考虑,redis-server.exe/redis-cli.exe.它们各自是redis服务和redisclie

redis数据库的安装配置

redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的value类型相对更多,包括string.list.set.zset和hash. 这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作.在此基础上,redis支持各种不同方式的排序.Redis数据都是缓存在计算机内存中,并且会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件. Window

mysql学习笔记之mysql数据库的安装

1.运行mysql安装包选择自定义安装(安装路径不要带中文,否则安装会出错!) 2.一个mysql想要操作成功需要有三部分:服务器端,数据段,数据. 3.服务器软件目录: 4.数据目录: 点击安装即可. 5.到这里mysql已经安装好了,接下来对mysql进行一些配置.比如配置mysql最多允许多少连接,是否可远程登录 7.机器类型: 8.是否支持事务 9.innodb表空间: 10.连接数量 11.字符集设定 最后执行配置即可. 接下里进入mysql安装目录下的bin目录查看下: 连接服务器:

redis 的一主二从三哨兵模式

概述 在部署redis 的时候,如果redis宕机,缓存将不可用,redis提供了哨兵模式保证redis实现高可用. 即一台主机两台从机,三台哨兵主机,如果主实例宕机,哨兵将将一台从机升级为主机.实现高可用. 配置方法 1.IP地址配置如下 主 127.0.0.1 6001 从 127.0.0.1 6002 从 127.0.0.1 6003 哨兵 127.0.0.1 16001 127.0.0.1 16002 127.0.0.1 16002 2.修改配置 将 redis.con 拷贝两份 red

Redis主从复制、哨兵模式

1.部署主从 环境:主IP:10.0.0.15,端口6379;从IP:10.0.0.16,端口6379. 原理:基于RDB持久化的功能来实现主从复制的功能. a.linux-redis1(10.0.0.15) cd /usr/local/redis/ grep "^[a-Z]" redis.conf # 列出几个修改过的配置 bind 10.0.0.15 protected-mode no port 6379 daemonize yes loglevel notice logfile

Redis篇6-replication主从复制与哨兵模式

概述 官方说明:https://redis.io/topics/replication 作用:读(Slave)写(Master)分离,容灾恢复 哨兵模式可以实现无人值守 缺点:主从复制无疑会带来延迟(Master机器同步到Slave机器),使用哨兵模式则延迟会更明显. 测试配置准备(一台主机两台备机) 拷贝多个配置文件分别命名区分 redis{port}.conf Master 端口6379 Slave1 端口6380 Slave2 端口6381 其他方便区别配置 使用后台方式启动服务 daem

Linux 学习记录 五(软件的安装升级)

一.gcc gcc是Linux上面最标准的C语言的编译程序,用来源代码的编译链接. gcc -c hello.c 编译产生目标文件hello.o gcc -O hello.c 编译产生目标文件,并进行优化 gcc -o hello hello.c 生成hello这个可执行的二进制文件 缺点:命令的冗余性,如果 C 语言程序中包含对其他函数或者程序的引用,那么其他程序也要编译成目标文件,然后一起编译成可执行文件,才能运行成功.一个大的程序引用是非常多的,所以用gcc来编译,显得很冗余. 二.mak