准备一台机器,系统版本为CentOS7。

部署redis

1、下载软件包

# wget http://download.redis.io/releases/redis-3.2.8.tar.gz

2、解压

# tar xvf redis-3.2.8.tar.gz -C /usr/local/
# cd /usr/local/
# ln -sv redis-3.2.8/ redis

3、编译

# yum groupinstall -y "Development Tools"
# cd redis
# make

4、为多实例redis配置启动环境

# mkdir -pv /home/redis-cluster/{9000,9001,9002}

# cp src/{redis-server,redis-sentinel} /home/redis-cluster/9000/
# cp src/{redis-server,redis-sentinel} /home/redis-cluster/9001/
# cp src/{redis-server,redis-sentinel} /home/redis-cluster/9002/ # cp redis.conf sentinel.conf /home/redis-cluster/9000/
# cp redis.conf sentinel.conf /home/redis-cluster/9001/
# cp redis.conf sentinel.conf /home/redis-cluster/9002/

5、修改配置文件

# vim /home/redis-cluster/9000/redis.conf
bind 172.60.0.170
protected-mode no
port 9000
daemonize yes
appendonly yes # \cp /home/redis-cluster/9000/redis.conf /home/redis-cluster/9001/redis.conf
# \cp /home/redis-cluster/9000/redis.conf /home/redis-cluster/9002/redis.conf # vim /home/redis-cluster/9001/redis.conf
port 9001
slaveof 172.60.0.170 9000 # vim /home/redis-cluster/9002/redis.conf
port 9002
slaveof 172.60.0.170 9000

6、启动三个redis实例

# cd /home/redis-cluster/9000/
# ./redis-server redis.conf # cd ../9001/
# ./redis-server redis.conf # cd ../9002/
# ./redis-server redis.conf # ps -ef | grep redis
root 23565 1 0 03:29 ? 00:00:03 ./redis-server 172.60.0.170:9000
root 23569 1 0 03:29 ? 00:00:02 ./redis-server 172.60.0.170:9001
root 23575 1 0 03:29 ? 00:00:02 ./redis-server 172.60.0.170:9002

7、验证,查看主从状态

# /usr/local/redis/src/redis-cli -h 172.60.0.170 -p 9000
172.60.0.170:9000> set name keith
OK
172.60.0.170:9000> get name
"keith"
172.60.0.170:9000> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=172.60.0.170,port=9001,state=online,offset=99,lag=1
slave1:ip=172.60.0.170,port=9002,state=online,offset=99,lag=0
master_repl_offset:99
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:98

部署sentinel

1、部署实例一

# cd /home/redis-cluster/9000
# vim sentinel.conf
protected-mode no
port 29000
daemonize yes
dir /home/redis-cluster/9000/logs
sentinel monitor mymaster 172.60.0.170 9000 2
# mkdir logs
# ./redis-sentinel sentinel.conf
# \cp sentinel.conf ../9001/
# \cp sentinel.conf ../9002/

2、部署实例二

# cd ../9001/
port 29001
dir "/home/redis-cluster/9001/logs"
# mkdir logs
# ./redis-sentinel sentinel.conf

3、部署实例三

# cd ../9002/
# vim sentinel.conf
port 29002
dir "/home/redis-cluster/9002/logs"
# mkdir logs
# ./redis-sentinel sentinel.conf
# ps -ef | grep redis
root 23565 1 0 03:29 ? 00:00:03 ./redis-server 172.60.0.170:9000
root 23569 1 0 03:29 ? 00:00:03 ./redis-server 172.60.0.170:9001
root 23575 1 0 03:29 ? 00:00:03 ./redis-server 172.60.0.170:9002
root 23923 1 0 03:43 ? 00:00:04 ./redis-sentinel *:29000 [sentinel]
root 23927 1 0 03:44 ? 00:00:04 ./redis-sentinel *:29001 [sentinel]
root 23965 1 0 03:44 ? 00:00:04 ./redis-sentinel *:29002 [sentinel]

4、验证

# /usr/local/redis/src/redis-cli -h 172.60.0.170 -p 29000
172.60.0.170:29000> sentinel masters
1) 1) "name"
2) "mymaster"
3) "ip"
4) "172.60.0.170"
5) "port"
6) "9000"
7) "runid"
8) "3236841c634359db724f73d4833b003683efa446"
9) "flags"
10) "master"
11) "link-pending-commands"
12) "0"
13) "link-refcount"
14) "1"
15) "last-ping-sent"
16) "0"
17) "last-ok-ping-reply"
18) "65"
19) "last-ping-reply"
20) "65"
21) "down-after-milliseconds"
22) "30000"
23) "info-refresh"
24) "4288"
25) "role-reported"
26) "master"
27) "role-reported-time"
28) "2885298"
29) "config-epoch"
30) "0"
31) "num-slaves"
32) "2"
33) "num-other-sentinels"
34) "2"
35) "quorum"
36) "2"
37) "failover-timeout"
38) "180000"
39) "parallel-syncs"
40) "1"
172.60.0.170:29000> sentinel slaves mymaster
1) 1) "name"
2) "172.60.0.170:9002"
3) "ip"
4) "172.60.0.170"
5) "port"
6) "9002"
7) "runid"
8) "0e741da8193158b565113ec84c6384284d11b0bd"
9) "flags"
10) "slave"
11) "link-pending-commands"
12) "0"
13) "link-refcount"
14) "1"
15) "last-ping-sent"
16) "0"
17) "last-ok-ping-reply"
18) "133"
19) "last-ping-reply"
20) "133"
21) "down-after-milliseconds"
22) "30000"
23) "info-refresh"
24) "4338"
25) "role-reported"
26) "slave"
27) "role-reported-time"
28) "2915465"
29) "master-link-down-time"
30) "0"
31) "master-link-status"
32) "ok"
33) "master-host"
34) "172.60.0.170"
35) "master-port"
36) "9000"
37) "slave-priority"
38) "100"
39) "slave-repl-offset"
40) "632552"
2) 1) "name"
2) "172.60.0.170:9001"
3) "ip"
4) "172.60.0.170"
5) "port"
6) "9001"
7) "runid"
8) "4a500eedd644d89c565773d5e42faf4c2872295e"
9) "flags"
10) "slave"
11) "link-pending-commands"
12) "0"
13) "link-refcount"
14) "1"
15) "last-ping-sent"
16) "0"
17) "last-ok-ping-reply"
18) "133"
19) "last-ping-reply"
20) "133"
21) "down-after-milliseconds"
22) "30000"
23) "info-refresh"
24) "4338"
25) "role-reported"
26) "slave"
27) "role-reported-time"
28) "2915465"
29) "master-link-down-time"
30) "0"
31) "master-link-status"
32) "ok"
33) "master-host"
34) "172.60.0.170"
35) "master-port"
36) "9000"
37) "slave-priority"
38) "100"
39) "slave-repl-offset"
40) "632552"

CentOS7单节点部署redis主从复制和sentinel的更多相关文章

  1. CentOS7单节点部署redis-cluster

    准备一台机器,系统版本为CentOS7.(注意本文描述的是redis-cluster,不是主从复制) 1.下载软件包 # wget http://download.redis.io/releases/ ...

  2. Ubuntu下用devstack单节点部署Openstack

    一.实验环境 本实验是在Vmware Workstation下创建的单台Ubuntu服务器版系统中,利用devstack部署的Openstack Pike版. 宿主机:win10 1803  8G内存 ...

  3. HyperLedger Fabric 1.4 单机单节点部署(10.2)

    单机单节点指在一台电脑上部署一个排序(Orderer)服务.一个组织(Org1),一个节点(Peer,属于Org1),然后运行官方案例中的example02智能合约例子,实现转财交易和查询功能.单机单 ...

  4. Centos7 单节点安装 FastDFS + FastDHT服务

    Centos7 单节点安装 FastDFS + FastDHT服务 1.安装gcc(编译时需要) FastDFS是C语言开发,安装FastDFS需要先将官网下载的源码进行编译,编译依赖gcc环境,如果 ...

  5. .netcore consul实现服务注册与发现-单节点部署

    原文:.netcore consul实现服务注册与发现-单节点部署 一.Consul的基础介绍     Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分 ...

  6. Kubernetes 二进制部署(一)单节点部署(Master 与 Node 同一机器)

    0. 前言 最近受“新冠肺炎”疫情影响,在家等着,入职暂时延后,在家里办公和学习 尝试通过源码编译二进制的方式在单一节点(Master 与 Node 部署在同一个机器上)上部署一个 k8s 环境,整理 ...

  7. MongoDB 3.2复制集单节点部署(四)

    MongoDB在单节点中也可以做复制集,但是仅限于测试实验,最大的好处就是部署方便快速,可以随便添加新节点,节省资源.在这里我使用的是MongoDB 3.2版本进行复制集实验(但MongoDB配置文件 ...

  8. MongoDB 2.6复制集单节点部署(三)

    MongoDB在单节点中也可以做复制集,但是仅限于测试实验,最大的好处就是部署方便快速,可以随便添加新节点,节省资源.在这里我使用的是MongoDB 2.6版本进行复制集实验(但MongoDB配置文件 ...

  9. Ubuntu 16.04下使用docker部署Redis主从复制

    (以下docker相关的命令,需要在root用户环境下或通过sudo提升权限来进行操作.) 1.拉取Redis镜像到本地 docker pull redis 2. 准备Redis主从配置文件 Redi ...

随机推荐

  1. appium 元素定位方法汇总

    以上图为例,要定位到右下角的 我的 ,并点击 # appium的webdriver提供了11种元素定位方法,在selenium的基础上扩展了三个,可以在pycharm里面输入driver.find_e ...

  2. 《图解 HTTP 》阅读 —— 第一章

    第1章 了解web及网络基础 计算机与网络设备相互通信的规则称为协议,比如:如何探测到通信目标.由哪一边发起通信.使用那种语言进行通信.怎么结束通信等. TCP/IP 协议族按照层次分为以下四层:应用 ...

  3. socket 编程 : shutdown vs close

    TCP/IP 四次挥手 首先作者先描述一下TCP/IP 协议中四次挥手的过程,如果对此已经熟悉的读者可以跳过本节. 四次挥手 这是一个很经典的示例图,众所周知tcp socket 在一个生命周期中有很 ...

  4. Python20 - Day09

    python并发编程之多线程理论 1.什么是线程? 进程只是用来把资源集中到一起(进程是一个资源单位,或者说资源集合),而线程才是cpu上的执行单位. 多线程(多个控制线程)的概念是,在一个进程中存在 ...

  5. Python更新库

    查看系统里过期的python库,可以用pip命令 [root@vnode33 sim-enb-sgi]# pip list #列出所有安装的库 Package Version ------------ ...

  6. 随手记录-linux-vim使用

  7. TFS任务预览

    不太熟悉TFS任务项的建立. 初步建立及按老师要求分配到个人的任务设置与时间安排如下: (长时间任务可由多人合作完成,具体根据情况迅速调整任务分配) 加上每人需要进行阅读前一小组的代码需要时间2*8= ...

  8. Scrum Meeting 11.08

    成员 今日任务 明日计划 用时 徐越       赵庶宏       薄霖       卞忠昊 WebView和JavaScript交互基础 Bitmap(位图)全解析 Part1 3h  武鑫 设计 ...

  9. 2-Sixth Scrum Meeting20151206

    任务分配 闫昊: 今日完成:请假.(最近代码写得多……很累……) 明日任务:完成数据库设计. 唐彬: 今日完成:ios客户端代码的深度学习. 明日任务:读IOS讨论区后台接口. 史烨轩: 今日完成:请 ...

  10. SpringMVC(二)-- springmvc的系统学习之跳转结果的方式

    资源: 尚学堂   邹波  springmvc框架视频 若无特别注明,例子项目的配置方式为注解 一.设置ModelAndView对象. 1.根据View的名称和视图解析器跳转到指定的页面. 2.跳转的 ...