Redis的安装

方法一:搭建主从集群

下载redis镜像

docker pull hub.c.163.com/library/redis:latest

运行镜像

docker run --name redis-node1 -p 6379:6379 -d hub.c.163.com/library/redis

docker run --name redis-node2 -p 6379:6379 -d hub.c.163.com/library/redis

docker run --name redis-node3 -p 6379:6379 -d hub.c.163.com/library/redis

配置redis集群

选择一台作为主机,我选择172.31.19.88这台作为主机

docker exec -ti 容器ID /bin/bash 分别进入三个redis容器中

进入容器后,使用redis-cli 命令,连接redis服务器

分别在172.31.18.167和172.31.16.94使用 SLAVEOF 172.31.19.88 6379 命令

在172.31.19.88 使用info replication 命令,查看主从关系是否配置成功

这样,redis集群环境就搭建好了。

哨兵模式

方案一:基于现有的3台Redis容器服务,互相启动一个Redis哨兵

方案二:重新再启动3台Redis容器服务,分别启动一个Redis哨兵

方法二:搭建redis cluster(非docker)

安装redis

cd /usr/local/src

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

编译redis

先安装gcc编译器

yum -y install gcc

解压redis包 然后编译安装

tar -zxvf redis-5.0.2.tar.gz

cd redis-5.0.2

make && make install

创建节点

我选择在/usr/local下创建了一个redis-cluster文件夹

mkdir /usr/local/redis-cluster

cd /usr/local/redis-cluster

mkdir 6379 6380

cp /usr/local/redis-5.0.2/redis.conf  /usr/local/redis-cluster/6379

cp /usr/local/redis-5.0.2/redis.conf  /usr/local/redis-cluster/6380

修改配置文件

daemonize  yes                     //守护线程 ,后台运行redis

pidfile  /var/run/redis_6379.pid      

port  6379                             //每个节点的端口号

cluster-enabled  yes                   //开启集群模式

cluster-config-file  nodes_6379.conf   //集群节点的配置

cluster-node-timeout  5000         //节点请求超时时间

appendonly  yes                  //aof日志每一个操作都记录模式

bind 0.0.0.0                //开启网络,保证其他网络可以访问该机子

分发该配置到另外两台机器

scp -r /usr/local/redis-cluster [ip]:/usr/local

启动每台机器上的两个节点

cd /usr/loacl/src/

redis-server /usr/local/redis-cluster/6379/redis.conf

redis-server /usr/local/redis-cluster/6380/redis.conf

创建集群

cd /usr/local/src/redis-5.0.2

redis-cli --cluster create  [ip1]:6379  [ip2]:6379  [ip3]:6379  [ip1]:6380  [ip2]:6380  [ip3]:6380 --cluster-replicas 1

//创建集群,--cluster-replicas 1 指定从库数量1

//创建顺序三个主,三个从,前面三个是主后面三个是从

方法三:搭建redis cluster(docker)

下载redis镜像

docker pull redis

编写配置文件

我选择在当前目录创建一个redis-cluster文件夹,进入文件夹编写文件redis-cluster.tmpl

port ${PORT}                                       ##节点端口

protected-mode no                                  ##开启集群模式

cluster-enabled yes                                ##cluster集群模式

cluster-config-file nodes.conf                     ##集群配置名

cluster-node-timeout 5000                          ##超时时间

cluster-announce-ip xxx.xx.xx.xx                   ##容器ip,实际为各宿主机ip

cluster-announce-port ${PORT}                      ##节点映射端口

cluster-announce-bus-port 1${PORT}                 ##节点总线端口

appendonly yes                                     ##持久化模式

生成配置文件

for port in `seq 7004 7005`; do \

  mkdir -p ./${port}/conf \

  && PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf \

  && mkdir -p ./${port}/data; \

done

创建redis容器

for port in `seq 7004 7005`; do \

  docker run -d -ti -p ${port}:${port} -p 1${port}:1${port} \

  -v /root/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \

  -v /root/redis-cluster/${port}/data:/data \

  --name redis-${port} --net=host \

  redis redis-server /usr/local/etc/redis/redis.conf; \

done

这里我使用了宿主机网络模式,容器之间可以直接通过宿主机ip进行通讯,配置文件也可以写宿主机ip。

上面步骤分别在三台主机上进行操作。

启动集群

进入其中一个容器中

docker exec -it redis-6379 bash

redis-cli --cluster create 172.16.10.175:7000 172.16.10.175:7001 172.16.10.175:7002 172.16.10.175:7003 172.16.10.175:7004 172.16.10.175:7005 --cluster-replicas 1

//创建集群,--cluster-replicas 1 指定从库数量1

//创建顺序三个主,三个从,前面三个是主后面三个是从

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