redis 主从+哨兵部署

环境介绍:

操作系统:中标麒麟6.0

redis最新稳定版4.0.6

在这里我们搭建的是一个1主3从的redis+3个哨兵集群的环境,由于是在一台物理机上,所有我们用端口区分。

主节点master物理机IP:192.168.150.129       端口:7000

从节点slave1 物理机IP:192.168.150.129               端口:7001    哨兵sentinel1端口:26301

从节点slave2物理机IP:192.168.150.129               端口:7002    哨兵sentinel2端口:26302

从节点slave3物理机IP:192.168.150.129               端口:7003    哨兵sentinel2端口:26303

一、下载安装

依赖安装

wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz 

sudo tar xzvf tcl8.6.1-src.tar.gz  -C /usr/local/ 

cd  /usr/local/tcl8.6.1/unix/ 

sudo ./configure 

sudo make 

sudo make install 

下载地址:https://redis.io/download 

$ wget http://download.redis.io/releases/redis-4.0.6.tar.gz

$ tar xzf redis-4.0.6.tar.gz

$ cd redis-4.0.6

$ make

$ mkdir -p /usr/local/redis

$ make PREFIX=/usr/local/redis install

二、复制文件

进入redis所在目录

创建7000、7001、7002、7003目录,分别将安装目录下的redis.conf、sentinel.conf 拷贝到这四个目录下。

主节点

mkdir -p /usr/local/redis/7000/data &&  mkdir -p /usr/local/redis/7000/log &&  cp redis.conf /usr/local/redis/7000/redis7000.conf 

从节点和哨兵

mkdir -p /usr/local/redis/7001/data &&  mkdir -p /usr/local/redis/7001/log  &&  mkdir -p /usr/local/redis/7001/run/tmp && cp redis.conf /usr/local/redis/7001/redis7001.conf  && cp sentinel.conf  /usr/local/redis/7001/sentinel26301.conf

mkdir -p /usr/local/redis/7002/data &&  mkdir -p /usr/local/redis/7002/log  &&  mkdir -p /usr/local/redis/7002/run/tmp  && cp redis.conf /usr/local/redis/7002/redis7002.conf  && cp sentinel.conf  /usr/local/redis/7002/sentinel26302.conf

mkdir -p /usr/local/redis/7003/data &&  mkdir -p /usr/local/redis/7003/log  &&  mkdir -p /usr/local/redis/7003/run/tmp && cp redis.conf /usr/local/redis/7003/redis7003.conf  && cp sentinel.conf  /usr/local/redis/7003/sentinel26303.conf

三、设置内存分配策略(可选,根据服务器的实际情况进行设置)

/proc/sys/vm/overcommit_memory

可选值:0、1、2。

0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。

1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。

2, 表示内核允许分配超过所有物理内存和交换空间总和的内存

四、开启redis端口,修改防火墙配置文件(麒麟系统防护墙娃设置有问题)

    vi /etc/sysconfig/iptables

加入端口配置

      vi /etc/sysconfig/iptables

加入端口配置

 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 7000 -j ACCEPT  

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport26301 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport26302 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport26303 -j ACCEPT

重新加载规则

    service iptables restart

五、配置redis.config文件

1、主节点master的配置文件redis7000.conf:

# vim /usr/local/redis/7000/redis7000.conf

# 注释以下内容开启远程访问

# bind 127.0.0.1

# Redis使用后台模式

daemonize yes

# 关闭保护模式

protected-mode no

# 修改启动端口为6379

port 7000

# 修改pidfile指向路径

pidfile  /usr/local/redis/7000/redis_7000.pid

#日志文件

logfile " /usr/local/redis/7000/log/7000.log"

#数据库文件名

dbfilename dump7000.rdb

#数据库文存放目录

dir /usr/local/redis/7000/data

#  在高并发的环境中,为避免慢客户端的连接问题,需要设置一个高速后台日志

tcp-backlog 511

#开启快照

appendonly yes

启动主节点

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

测试是否成功

2、从节点slave1的配置文件redis7001.conf :

# vim /usr/local/redis/7001/redis7001.conf

# 注释以下内容开启远程访问

# bind 127.0.0.1

# Redis使用后台模式

daemonize yes

# 关闭保护模式

protected-mode no

# 修改启动端口为6379

port 7001

# 修改pidfile指向路径

pidfile  /usr/local/redis/7001/redis_7001.pid

#日志文件

logfile " /usr/local/redis/7001/log/7001.log"

#数据库文件名

dbfilename dump7001.rdb

#数据库文存放目录

dir /usr/local/redis/7001/data

#  在高并发的环境中,为避免慢客户端的连接问题,需要设置一个高速后台日志

tcp-backlog 511

#开启快照

appendonly yes

#主节点配置

slaveof 127.0.0.1 7000

启动从节点

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

测试是否成功

3、从节点slave2的配置文件redis7002.conf:

# 注释以下内容开启远程访问

# bind 127.0.0.1

# Redis使用后台模式

daemonize yes

# 关闭保护模式

protected-mode no

# 修改启动端口为6379

port 7002

# 修改pidfile指向路径

pidfile  /usr/local/redis/7002/redis_7002.pid

#日志文件

logfile " /usr/local/redis/7002/log/7002.log"

#数据库文件名

dbfilename dump7002.rdb

#数据库文存放目录

dir /usr/local/redis/7002/data

#  在高并发的环境中,为避免慢客户端的连接问题,需要设置一个高速后台日志

tcp-backlog 511

#开启快照

appendonly yes

#主节点配置

slaveof 127.0.0.1 7000

启动从节点

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

测试是否成功

4、从节点slave3的配置文件redis7003.conf:

# 注释以下内容开启远程访问

# bind 127.0.0.1

# Redis使用后台模式

daemonize yes

# 关闭保护模式

protected-mode no

# 修改启动端口为6379

port 7003

# 修改pidfile指向路径

pidfile  /usr/local/redis/7003/redis_7003.pid

#日志文件

logfile " /usr/local/redis/7003/log/7003.log"

#数据库文件名

dbfilename dump7003.rdb

#数据库文存放目录

dir /usr/local/redis/7003/data

#  在高并发的环境中,为避免慢客户端的连接问题,需要设置一个高速后台日志

tcp-backlog 511

#开启快照

appendonly yes

#主节点配置

slaveof 127.0.0.1 7000

启动从节点

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

测试是否成功

5、哨兵sentinel1的配置文件sentinel26301.conf:

port 26301

dir /usr/local/redis/7001/run/tmp

sentinel monitor mymaster 127.0.0.1 7000 2

sentinel down-after-milliseconds mymaster 30000

sentinel parallel-syncs mymaster 1

sentinel failover-timeout mymaster 180000

logfile "/usr/local/redis/7001/log/sentinel26301.log"

6、哨兵sentinel2的配置文件sentinel26302.conf:

port 26302

dir /usr/local/redis/7002/run/tmp

sentinel monitor mymaster 127.0.0.1 7000 2

sentinel down-after-milliseconds mymaster 30000

sentinel parallel-syncs mymaster 1

sentinel failover-timeout mymaster 180000

logfile "/usr/local/redis/7002/log/sentinel26302.log"

7、哨兵sentinel3的配置文件sentinel26303.conf:

port 26303

dir /usr/local/redis/7003/run/tmp

sentinel monitor mymaster 127.0.0.1 7000 2

sentinel down-after-milliseconds mymaster 30000

sentinel parallel-syncs mymaster 1

sentinel failover-timeout mymaster 180000

logfile "/usr/local/redis/7003/log/sentinel26303.log"

六、启动redis和哨兵服务

注意:第一次要先启动redis主服务、从服务,然后才能启动哨兵服务

1、进入redis安装目录的根目录

2、启动redis主节点

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

3、启动redis从节点

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

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

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

4、启动哨兵

/usr/local/redis/bin/redis-sentinel  /usr/local/redis/7001/sentinel26301.conf &

/usr/local/redis/bin/redis-sentinel  /usr/local/redis/7002/sentinel26302.conf &

/usr/local/redis/bin/redis-sentinel  /usr/local/redis/7003/sentinel26303.conf &

七、一些常用命令

进入redis的安装目录

启动redis-server:

./redis-server redis_6305.conf &

启动redis-sentinel

./redis-sentinel sentinel_6301.config

./redis-server sentinel_6316.conf --sentinel &

查看某个端口信息:

./redis-cli -p 6301 info

./redis-cli -p 6301 info Replication

./redis-cli -p 6301 info Sentinel

查看某个主机上的信息redis信息

./redis-cli -h 10.16.41.52 -p 6316 info

./redis-cli -h 10.16.41.52 -p 6316 info Replication

./redis-cli -h 10.16.41.52 -p 6316 info Sentinel

关闭本机redis服务

./redis-cli -p 6379 shutdown

关闭远程主机redis服务

./redis-cli -h 192.168.9.18 -p 6379 shutdown

客户端连接本机

./redis-cli -p 6301

客户端连接远程机

./redis-cli -h 10.16.41.53 -p 6301

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,377评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,390评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,967评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,344评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,441评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,492评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,497评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,274评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,732评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,008评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,184评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,837评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,520评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,156评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,407评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,056评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,074评论 2 352

推荐阅读更多精彩内容

  • NOSQL类型简介键值对:会使用到一个哈希表,表中有一个特定的键和一个指针指向特定的数据,如redis,volde...
    MicoCube阅读 3,972评论 2 27
  • 本文档翻译自 http://redis.io/topics/cluster-tutorial 。 本文档是 Red...
    会跳舞的机器人阅读 66,927评论 2 21
  • 1 Redis介绍1.1 什么是NoSql为了解决高并发、高可扩展、高可用、大数据存储问题而产生的数据库解决方...
    克鲁德李阅读 5,278评论 0 36
  • 在企业应用中,对于数据的固化一般采用数据库,但是数据库的吞吐量还是存在一定的问题的,在高并发高吞吐要求时,一般会直...
    丁小晶的晶小丁阅读 65,025评论 4 11
  • 打印机能坏个四五天,是整个办公区的打印机。 提个付款的单子,授权问题,费用划转问题,要个账号。是一直盯着的哦,也要...
    王沫沫阅读 134评论 0 0