文章目录

  • redis安装
  • 配置主从复制集群
  • 复制原理


redis安装

在linux中安装redis过程如下:
(1)搭建实验环境
准备三台虚拟机+一台物理机

server1(172.25.10.1)

redis主服务器

server2(172.25.10.2)

redis从服务器

server3(172.25.10.3)

redis从服务器

物理机

172.25.10.250

三台服务器为真机上所做的快照,实验环境干净!
实验步骤,从真机给server1发送redis安装包
首先,在server1上进行基本的配置搭建

  1. 解压安装包,进入到解压后的目录


    2、进行编译安装(可以在编译前安装gcc,也可以在编译之后安装,系统会提示出错,需要安装gcc)

先进行make ##这里不用configure
再make install

redis异地分布式 redis怎么分布式_主数据

redis异地分布式 redis怎么分布式_redis异地分布式_02

进行编译与安装(编译成功后会出现新的redis脚本,eg:redis-cli),进入utils/下面,开启redis
./install_server.sh 时全部选择默认。或者回车。从提示的内容中我们可以看到redis的端口、生成的配置文件、以及redis的数据保存在哪个文件等

redis异地分布式 redis怎么分布式_主数据_03


redis异地分布式 redis怎么分布式_redis主从复制_04


安装成功!!3、修改配置文件

查看端口发现此时仅仅监听本机

redis异地分布式 redis怎么分布式_数据库_05


修改其配置文件,改为监听所有

redis异地分布式 redis怎么分布式_redis_06


redis异地分布式 redis怎么分布式_redis主从复制_07


4、打开服务 /etc/init.d/redis_6379 restart

注意:第一次使用脚本方式启动redis之后才可以使用systemd的方式来控制redis服务5、使用redis-cli (redis命令行工具)进行测试

发现可以写入数据,查看数据,删除数据

注意:这里的数据是key-value形式,如果是同一个key的value,会进行覆盖

redis异地分布式 redis怎么分布式_redis异地分布式_08

配置主从复制集群

在redis中使用复制功能非常容易,只需要在从数据库的配置文件里面添加"slaveof 主数据库IP 主数据库端口 "

先在server2(从服务器)上面进行编译安装redis,进行基本的配置

为了方便起见,我们直接server1上解压后产生的目录直接上传到server2主机上。

redis异地分布式 redis怎么分布式_主数据_09


在server2上我们直接进行make install

redis异地分布式 redis怎么分布式_redis异地分布式_10


redis异地分布式 redis怎么分布式_redis异地分布式_11


2、 修改配置文件的监听ip,并在配置文件添加设置server2是从服务器,它的主服务器是server1

redis异地分布式 redis怎么分布式_redis异地分布式_12


测试主从redis服务器是否做好。

在server2上查看数据,可以看出实现了基本的主从复制,但是不能写,没有权限

redis异地分布式 redis怎么分布式_redis异地分布式_13


redis异地分布式 redis怎么分布式_数据库_14

redis的数据保存在/var/lib/redis/6379/dump.rdb
如果有问题,redis起不来,可以删除这文件再试

查看这个文件:

redis异地分布式 redis怎么分布式_redis主从复制_15


redis异地分布式 redis怎么分布式_数据库_16


redis的复制功能是支持多个数据库之间的数据同步。一类是主数据库(master)一类是从数据库(slave),
主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到从数据库,而从数据库一般是只读的,
并接收主数据库同步过来的数据,一个主数据库可以有多个从数据库,而一个从数据库只能有一个主数据库。
从数据库的数据是以自己的主数据库为标准的

复制原理

了解redis复制原理对日后运维的学习很有帮助
当一个从数据库启动后,会向主数据库发送SYNC命令,主数据库接收到SYNC命令后会开始在后台保存快照(即RDB持久化过程),并将保存期间接受到的命令缓存起来。当快照完成后,redis会将快照文件和所有缓存的命令发送给从数据库。从数据库收到后,会载入快照文件并执行收到的缓存命令。当主从数据库断开重连后会重新执行上述操作,不支持断点续传。