下载和编译redis安装包

参考:https://www.cnblogs.com/cwp-bg/p/8094914.html

# 从官方网站下载安装包,注意,当前在哪个目录下执行命令,下载的包将在哪个目录下
$ wget http://download.redis.io/releases/redis-4.0.6.tar.gz
# 将下载包解压
$ tar -zxvf redis-4.0.6.tar.gz
# 进入解压后的文件夹
$ cd redis-4.0.6
# 对文件进行编译,得到可执行的文件和配置文件
$ sudo make

修改redis.conf

# 创建一个目录
mkdir /data
# 复制一份redis.conf到data目录
cp redis.conf /data/6380.conf
vi /data/6380.conf bind 0.0.0.0 # 绑定ip
port 6380 # 修改端口
daemonize no # 前台运行,暴露给docker管理,否则启动容器会失败
dbfilename dump.rdb # 设置持久化文件 # 设置集群参数
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000

docker安装redis

# 查询
docker search redis
#拉取镜像,可指定redis的版本,不指定默认最新
docker pull redis:4.0.6
# 查看
docker images

启动容器

docker run -p 6380:6380  # 指定端口映射
--net host # 使用host网络模式(一定要这个参数)
-v /data/6380.conf:/etc/redis/redis.conf # 挂载配置文件
--name myredis1
-d redis:4.0.6 redis-server /etc/redis/redis.conf # 使用配置文件启动
  • 同理启动六个
docker run --net host -v /data/6380.conf:/etc/redis/redis.conf --name myredis1 -d redis:4.0.6 redis-server /etc/redis/redis.conf
docker run --net host -v /data/6381.conf:/etc/redis/redis.conf --name myredis2 -d redis:4.0.6 redis-server /etc/redis/redis.conf
docker run --net host -v /data/6382.conf:/etc/redis/redis.conf --name myredis3 -d redis:4.0.6 redis-server /etc/redis/redis.conf
docker run --net host -v /data/6383.conf:/etc/redis/redis.conf --name myredis4 -d redis:4.0.6 redis-server /etc/redis/redis.conf
docker run --net host -v /data/6384.conf:/etc/redis/redis.conf --name myredis5 -d redis:4.0.6 redis-server /etc/redis/redis.conf
docker run --net host -v /data/6385.conf:/etc/redis/redis.conf --name myredis6 -d redis:4.0.6 redis-server /etc/redis/redis.conf
  • 查看
docker exec -i -t myredis1 bash
redis-cli -p 6380 # 外部访问
redis-cli -p 6380
  • 注意:启动集群模式后,所有的数据只能使用db0,其他的数据库是不可用的。

创建集群

  • 制作一个集群管理工具镜像
# vi Dockerfile

FROM ubuntu:16.04
MAINTAINER cwp "13926902570" ADD sources.list /etc/apt/sources.list # 更换apt源
RUN apt-get update
RUN apt -y install ruby # 安装ruby
RUN gem install redis
ADD ./redis-4.0.6.tar.gz /usr/local/ # 将本地下载编译的redis文件添加到容器中,会自动解压缩
RUN cd /usr/local/
  • 创建镜像
docker build -t redis_trib:v1 /usr/local/
  • 注意:保证需要添加的文件和Dockerfile在同一个目录下。

  • 创建一个交互模式的容器

docker run -it redis_trib:v1 --name myredis_trib /bin/bash
  • 获取目前所有的redis容器的ip和端口,由于是host模式启动,主机ip和容器ip一样
docker inspect myredis1 myredis2 myredis3 myredis4 myredis5 myredis6 | grep IPAdress
  • 进入容器创建集群
cd redis-4.0.6/src/
redis-trib.rb create ip:port ... ipN:portN # 查看所有的集群节点
./redis-trib.rb info ip:port
或登录任意节点
cluster info
cluster nodes # 最前面就是节点的ID
  • 自此我们创建的是3个主节点的集群

redis-cluster主从模型

  • 注意:在redis-cluster集群环境中,启用了cluster配置的情况下slaveof是不可用的。

  • 为当前的主节点添加从节点

方法一:

redis-trib.rb add-node --slave --master-id 主节点id 新节点ip和port 旧的任意主节点

方法二:

redis-cli -p 6383
redis-trib add-node 新节点ip和port 旧的任意主节点
cluster replicate 主节点ID # 指定当前节点为哪个主节点的从节点
  • 自此3主3从的redis集群在docker上创建完毕。

docker之构建redis-cluster集群的更多相关文章

  1. Docker Compose 搭建 Redis Cluster 集群环境

    在前文<Docker 搭建 Redis Cluster 集群环境>中我已经教过大家如何搭建了,本文使用 Docker Compose 再带大家搭建一遍,其目的主要是为了让大家感受 Dock ...

  2. docker下创建redis cluster集群

    概述 在Redis中,集群的解决方案有三种 主从复制 哨兵机制 Cluster Redis Cluster是Redis的分布式解决方案,在 3.0 版本正式推出. 准备工作 1.确定本机IP地址 2. ...

  3. Docker构建redis cluster集群

    准备工作 安装gcc ruby 解压编译redis Redis 是 c 语言开发的.安装 redis 需要 c 语言的编译环境.如果没有 gcc 需要在线安装. yum install gcc-c++ ...

  4. centos6下redis cluster集群部署过程

    一般来说,redis主从和mysql主从目的差不多,但redis主从配置很简单,主要在从节点配置文件指定主节点ip和端口,比如:slaveof 192.168.10.10 6379,然后启动主从,主从 ...

  5. Docker 搭建 Redis Cluster 集群环境

    使用 Docker 搭建 Redis Cluster,最重要的环节就是容器通信的问题,这一块我们在之前的文章中已经给大家解决了<Docker 网络模式详解及容器间网络通信>,本篇文章主要练 ...

  6. K8S部署Redis Cluster集群

    kubernetes部署单节点redis: https://www.cnblogs.com/zisefeizhu/p/14282299.html Redis 介绍 • Redis代表REmote DI ...

  7. K8S部署Redis Cluster集群(三主三从模式) - 部署笔记

    一.Redis 介绍 Redis代表REmote DIctionary Server是一种开源的内存中数据存储,通常用作数据库,缓存或消息代理.它可以存储和操作高级数据类型,例如列表,地图,集合和排序 ...

  8. Redis Cluster 集群使用(3)

    简介 Redis3.0版本之前,可以通过Redis Sentinel(哨兵)来实现高可用(HA),从3.0版本之后,官方推出了Redis Cluster,它的主要用途是实现数据分片(Data Shar ...

  9. redis cluster 集群拓展

    redis cluster 集群拓展 准备工作 举例:添加2个节点(1主7006节点,1从7007节点) 在/home/redis-cluster下生成conf和data目标,并生成配置信息 `; d ...

  10. 搭建分布式 Redis Cluster 集群与 Redis 入门

    目录 Redis 集群搭建 Redis 是啥 集群(Cluster) Redis Cluster 说明 Redis Cluster 节点 Redis Cluster 集群模式 不能保证一致性 创建和使 ...

随机推荐

  1. vue render function

    vue render function https://vuejs.org/v2/guide/render-function.html { // Same API as `v-bind:class`, ...

  2. 【bzoj2829】信用卡凸包 凸包

    题目描述 输入 输出 样例输入 26.0 2.0 0.00.0 0.0 0.02.0 -2.0 1.5707963268 样例输出 21.66 题解 凸包 傻逼题,答案显然为:所有圆心构成的凸包周长+ ...

  3. Immediate Decodability HDU - 1305(模板trie)

    求这些01串是否有一个是另一个的前缀.. 就是求次数就好了嘛...emm... 网上竟然都用指针写.... #include<cstdio> #include<iostream> ...

  4. 【转】大数据分析(Big Data OLAP)引擎Dremel, Tenzing 以及Impala

    引自:http://blog.csdn.net/xhanfriend/article/details/8434896 对于数据分析师来说,SQL是主要的语言. Hive为Hadoop提供了支持SQL运 ...

  5. SQL中的替换函数replace()使用

    语法REPLACE ( string_expression , string_pattern , string_replacement ) 参数string_expression 要搜索的字符串表达式 ...

  6. mysql四-2:多表查询

    一 介绍 本节主题 多表连接查询 复合条件连接查询 子查询 准备表 #建表 create table department( id int, name varchar(20) ); create ta ...

  7. 服务器上的 Git - 在服务器上搭建 Git

    http://git-scm.com/book/zh/v2/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-%E5%9C%A8%E6%9C%8D%E ...

  8. codeforces gym101243 A C D E F G H J

    gym101243 A #include<iostream> #include<cstdio> #include<cmath> #include<cstrin ...

  9. 洛谷P3414 SAC#1 - 组合数

    P3414 SAC#1 - 组合数 218通过 681提交 题目提供者ProjectWTA 标签 难度普及/提高- 时空限制1s / 128MB 提交  讨论  题解 最新讨论更多讨论 讨论区出bug ...

  10. excel自带频率分析

    sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...