Redis的源码安装和主从同步

简介

Redis是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构。Redis内置了复制、LUA脚本、LRU驱动事件、事务和不同级别的磁盘持久化,并通过Redis哨兵和自动分区提供高可用性。
Redis是一个高可用的key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(列表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。也支持主从复制。

配置环境

本次Redis的源码编译安装和配置采用RedHat企业6.5版本的系统,使用三台主机:

         server2              172.25.31.2
         server3              172.25.31.3
         server4              172.25.31.4

Redis下载

Redis中文官网:http://www.redis.cn
Redis官方文档:http://www.redis.cn/documentation.html
Redis-4.0.1下载地址:http://download.redis.io/releases/redis-4.0.1.tar.gz

Redis源码安装

在下载好Redis源码安装包之后,按照以下步骤进行编译安装:

  • 依赖包
    Redis在源码编译时,依赖包只需要gcc即可。
[root@server2 ~]# yum install -y gcc
  • 源码编译
    将Redis的源码包解压后,进入目录下直接输入make编译,编译成功后make install。
[root@server2 ~]# tar zxf redis-4.0.1.tar.gz
[root@server2 ~]# cd redis-4.0.1
[root@server2 redis-4.0.1]# make
[root@server2 redis-4.0.1]# make install

这里写图片描述

这里写图片描述

  • 安装
    在utils目录下运行install_server.sh脚本安装。
[root@server2 redis-4.0.1]# cd utils/
[root@server2 utils]# ./install_server.sh

Welcome to the redis service installer
This script will help you easily set up a running redis server

Please select the redis port for this instance: [6379] 
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf] 
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log] 
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379] 
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server] 
Selected config:
Port           : 6379
Config file    : /etc/redis/6379.conf
Log file       : /var/log/redis_6379.log
Data dir       : /var/lib/redis/6379
Executable     : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...
Installation successful!
# 运行脚本后,会有一些选择,直接全部回车即可。

完成后,Redis的源码编译安装就完成了,进程和端口都已经打开。
这里写图片描述

这里写图片描述

Redis简单配置

Redis编译安装完成后,配置文件是6379.conf,存放目录/etc/redis下。启动脚本在/etc/init.d目录下。
建议对配置文件做以下设置,使得其他客户端可以连接这台Redis。

[root@server2 ~]# vim /etc/redis/6379.conf

bind 0.0.0.0
# 设置为所有主机可以连接,是为了实验方便,并没有考虑安全的因素。
[root@server2 ~]# /etc/init.d/redis_6379 restart

完成后就可以对redis进行操作了。

这里写图片描述

Redis的主从同步

主从同步原理

Redis的主从同步图如下所示:

这里写图片描述

如果设置了一个slave,不管是在第一次连接还是重新连接master的时候,slave会发送一个同步命令,然后master开始后台保存,收集所有对修改数据的命令。slave第一次连接master时,采用的是全同步的方式,正常工作后采用的是增量同步的方式。当后台保存完成,master会将这个数据文件传送到slave,然后保存在磁盘,加载到内存中;master接着发送收集到的所有的修改数据的命令。

主从同步配置

分别在server2、server3和server4上源码编译安装Redis,并对配置文件进行设置,使得其可以通过其他客户端连接。
此次主从同步配置各主机环境:

server2         172.25.31.2         master
server3         172.25.31.3         slave
server4         172.25.31.4         slave

在master的server2主机上的配置文件不需要做任何修改,在slave的server3和server4主机上,需要修改配置文件,因为配置方法相同,所以以server3为例,如下:

[root@server3 ~]# vim /etc/redis/6379.conf 

slaveof 172.25.31.2 6379          # 第282行,写入master的IP和端口
[root@server3 ~]# /etc/init.d/redis_6379 restart

在server4上也做同样的配置后,Redis的一组主从同步就完成了。

主从同步测试

Redis默认设置,当Redis的状态是从服务器时,自动将这台主机的Redis切换为Read-Only状态。测试时,在master的server2上赋予变量一个值,在server3和server4上查看是否同步。

[root@server2 ~]# redis-cli

127.0.0.1:6379> set host server2
OK
127.0.0.1:6379> get host
"server2"
127.0.0.1:6379> quit

在server3和server4上是否有host变量的值,根据结果可以看出,实现了主从同步。
这里写图片描述

这里写图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值