博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
centos6.8 安装redis 4.0 搭建主从
阅读量:6292 次
发布时间:2019-06-22

本文共 4348 字,大约阅读时间需要 14 分钟。

centos6.8 安装redis 4.0 搭建主从

环境:

master:172.17.165.245

slave :172.17.165.230

redis 版本:redis 4.0

1.下载并进行安装包

[root@iZ2zejbqrpwrmr4mjy0u9fZ ~]#wget http://download.redis.io/releases/redis-4.0.8.tar.gz[root@iZ2zejbqrpwrmr4mjy0u9fZ ~]#tar zxvf redis-4.0.8.tar.gz  -C /usr/local/[root@iZ2zejbqrpwrmr4mjy0u9fZ ~]# cd !$[root@iZ2zejbqrpwrmr4mjy0u9fZ redis-4.0.8]# ls00-RELEASENOTES  CONTRIBUTING  deps     Makefile   README.md   runtest          runtest-sentinel  src    utilsBUGS             COPYING       INSTALL  MANIFESTO  redis.conf  runtest-cluster  sentinel.conf     tests[root@iZ2zejbqrpwrmr4mjy0u9fZ redis-4.0.8]#make

2.修改配置文件

[root@iZ2zegc312qxcxs61cotxlZ redis-4.0.8]# cp redis.conf  /etc/redis/[root@iZ2zegc312qxcxs61cotxlZ redis-4.0.8]# cp utils/redis_init_script /etc/init.d/redis[root@iZ2zejbqrpwrmr4mjy0u9fZ redis]# mv redis.conf  6379.conf[root@iZ2zegc312qxcxs61cotxlZ ~]# vim /etc/redis/6379.conf修改守护进程#daemonize no#修改为yesdaemonize yes  #Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程绑定的主机地址bind 127.0.0.1 172.17.165.245 #bind后面再添加主机的ip,后面主从复制 从Redis需要通过IP连接。端口号port 6379开启AOFappendonly yes

3.修改启动文件

REDISPORT=6379#EXEC=/usr/local/bin/redis-serverEXEC=/usr/local/redis-4.0.8/src/redis-server  #服务端绝对地址#CLIEXEC=/usr/local/bin/redis-cliCLIEXEC=/usr/local/redis-4.0.8/src/redis-cli  #客户端端绝对地址PIDFILE=/var/run/redis_${REDISPORT}.pidCONF="/etc/redis/${REDISPORT}.conf"           #配置文件#CONF="/etc/redis/redis-master.conf"case "$1" in    start)        if [ -f $PIDFILE ]        then                echo "$PIDFILE exists, process is already running or crashed"        else                echo "Starting Redis server..."                $EXEC $CONF &   #后台启动         fi        ;;    stop)        if [ ! -f $PIDFILE ]        then                echo "$PIDFILE does not exist, process is not running"        else                PID=$(cat $PIDFILE)                echo "Stopping ..."                $CLIEXEC -p $REDISPORT shutdown                while [ -x /proc/${PID} ]                do                    echo "Waiting for Redis to shutdown ..."                    sleep 1                done                echo "Redis stopped"        fi        ;;      restart)  #自己添加的重启动选择        if [ -f $PIDFILE ]        then                $CLIEXEC -p $REDISPORT shutdown                $EXEC $CONF                echo "Waiting for  Reids is restart ..."        else                $EXEC $CONF                #echo "Please use start or stop as first argument"                echo "Waiting for  Reids is restart ..."        fi        ;;esac

4.配置主从

从slave上修改配置文件

[root@iZ2zejbqrpwrmr4mjy0u9fZ ~]# vim /etc/redis/6379.conf# slaveof 
slaveof 172.17.165.245 6379

5.主master 上进行查看状态

[root@iZ2zegc312qxcxs61cotxlZ ~]# redis-cli 127.0.0.1:6379>info...# Replicationrole:master         #节点状态masterconnected_slaves:1  #链接slave数为1slave0:ip=172.17.165.230,port=6379,state=online,offset=588,lag=0  #slave节点master_replid:f7a4830f3b523187d959b4929dcb79f6cfca7c37master_replid2:0000000000000000000000000000000000000000master_repl_offset:588second_repl_offset:-1repl_backlog_active:1repl_backlog_size:1048576repl_backlog_first_byte_offset:1repl_backlog_histlen:588...

6.从slave 上进行查看状态

[root@iZ2zejbqrpwrmr4mjy0u9fZ ~]# redis-cli 127.0.0.1:6379> info...# Replicationrole:slave  #节点状态slavemaster_host:172.17.165.245  #链接到master 地址为172.17.165.245master_port:6379master_link_status:upmaster_last_io_seconds_ago:1master_sync_in_progress:0slave_repl_offset:140slave_priority:100slave_read_only:1connected_slaves:0      #链接slave的数目为0master_replid:f7a4830f3b523187d959b4929dcb79f6cfca7c37master_replid2:0000000000000000000000000000000000000000master_repl_offset:140second_repl_offset:-1repl_backlog_active:1repl_backlog_size:1048576repl_backlog_first_byte_offset:1repl_backlog_histlen:140...

7.主从同步进行测试

主master 进行设置一个键值:

[root@iZ2zegc312qxcxs61cotxlZ redis-4.0.8]# redis-cli 127.0.0.1:6379> SET test-sync wiwiiwi20180217OK

从slave 检查是否已经自动同步到了从库:

127.0.0.1:6379> get test-sync"wiwiiwi20180217"

可以看到,数据确实是从主库同步到了从库。

注意:主库用来写数据,从库用来读取数据

因为从库中修改的数据不会被同步到任何其他数据库,并且一旦主库修改了数据,从库的数据就会因为自动同步被覆盖,所以一般情况下,不建议将从库设置为可写

主从同步的原理:

当一个从数据库启动时,会向主数据库发送SYNC命令,主数据库收到命令后会开始在后台保存快照(即RDB持久化过程),并将保存快照期间接收到的命令缓存起来。当快照完成后,Redis会将快照文件和缓存的命令发给从数据库,从数据库收到数据后,会载入快照文件并执行缓存的命令。以上过程称为复制初始化。复制初始化之结束后,主数据库每收到写命令时就会将命令同步给从数据库,从而保证主从数据库数据一致,这一过程称为复制同步阶段。

转载于:https://blog.51cto.com/innocence/2071044

你可能感兴趣的文章
python打包_cx_freeze
查看>>
web.config/app.config敏感数据加/解密的二种方法
查看>>
PHP监控linux服务器负载
查看>>
delphi 入门教程
查看>>
技术人员,你拿什么拯救你的生活----温水煮青蛙
查看>>
最小排列数
查看>>
[C] zintrin.h: 智能引入intrinsic函数 V1.01版。改进对Mac OS X的支持,增加INTRIN_WORDSIZE宏...
查看>>
uva 101 The Blocks Problem
查看>>
Linux终端中设置vi编辑命令
查看>>
setup vaio winxp
查看>>
EBS FORM(10g)开发步骤
查看>>
Java 旋转数组查找旋转点和任意元素(元素可重复)
查看>>
悲观锁和乐观锁详解
查看>>
KV数据存储:持久化
查看>>
Data Structures with C++ Using STL Chapter 3算法概述---笔记
查看>>
VS2010 ,工程文件减肥
查看>>
国外程序员收集整理的PHP资源大全
查看>>
C#对图片文件的压缩、裁剪操作初探
查看>>
linux磁盘满时,如何定位并删除文件
查看>>
IOS 面试 --- 动画 block
查看>>