使用docker搭建本地集群Redis服务(参考:https://www.cnblogs.com/slowbirdoflsh/p/11633113.html)

环境配置

  # 拉取redis镜像

docker  pull  redis

  # 查看镜像详情

docker inspect redis

创建redis集群网络

docker  network  create  redis-cluster-net

集群挂在目录配置

1. 开启6个节点, 3对主从节点搭建集群

2. 开放7000-7005端口, 根据端口创建6个目录, 每个目录下创建data目录和配置文件redis-{port}.conf

3. 配置模板文件redis-cluster.tmpl

# 基本配置

## 开放端口

port ${port}

## 不作为守护进程

daemonize no

## 启用aof持久化模式

appendonly yes

# 集群配置

## 开启集群配置

cluster-enabled yes

## 存放集群节点的配置文件 系统自动建立

cluster-config-file nodes-${port}.conf

## 节点连接超时时间

cluster-node-timeout 50000  

## 实际为各节点网卡分配ip

cluster-announce-ip ${ip}

## 节点映射端口

cluster-announce-port ${port}

## 节点总线端口

cluster-announce-bus-port 1${port}

cluster-slave-validity-factor 10

cluster-migration-barrier 1

初始化redis集群目录脚本(init.sh):

#!/bin/bash

dir_redis_cluster='/home/lanlang/redis/redis-cluster'

gateway='172.18.0.1'

idx=1

for port in `seq 7000 7005`; do

mkdir -p ${dir_redis_cluster}/${port}/data;

idx=$(($idx+1));

port=${port} ip=`echo ${gateway} | sed "s/1$/$idx/g"` \

envsubst < ${dir_redis_cluster}/redis-cluster.tmpl \

> ${dir_redis_cluster}/${port}/redis-${port}.conf

done

执行init.sh之后创建目录

查看生成的redis配置文件:

集群搭建

启动脚本(start.sh):

#!/bin/bash

dir_redis_cluster='/home/lanlang/redis/redis-cluster'

for port in `seq 7000 7005`; do

docker run --name redis-${port} --net redis-cluster-net -d \

-p ${port}:${port} -p 1${port}:1${port} \

-v ${dir_redis_cluster}/${port}/data:/data \

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

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

done

执行完成:

查看启动的服务:

docker ps

查看集群功能是否开启:

docker  exec  -it  redis-7000  redis-cli  -p 7000  info  cluster

节点连接:

docker exec -it redis-7000 redis-cli -p 7000 cluster meet 172.18.0.3 7001

docker exec -it redis-7000 redis-cli -p 7000 cluster meet 172.18.0.4 7002

docker exec -it redis-7000 redis-cli -p 7000 cluster meet 172.18.0.5 7003

docker exec -it redis-7000 redis-cli -p 7000 cluster meet 172.18.0.6 7004

docker exec -it redis-7000 redis-cli -p 7000 cluster meet 172.18.0.7 7005 

查看节点并进行主从配置:

docker  exec  -it  redis-7000 redis-cli -p 7000 cluster nodes

配置7001节点为7000节点的从节点

docker exec -it redis-7001 redis-cli -p 7001 cluster replicate bbf710160c18a6267428714e887b33a04e557235

配置7003节点为7002节点的从节点

docker exec -it redis-7003 redis-cli -p 7003 cluster replicate 0c29ac82d4dbb68d48909906a902719cf05ca191

配置7005节点为7004节点的从节点

redis-cluster]# docker exec -it redis-7005 redis-cli -p 7005 cluster replicate c813df11ff91f18c49dd0931b4d5dcca3c43df9f

查看节点:

docker exec -it redis-7000 redis-cli -p 7000 cluster nodes

slots分配:

将16384个槽分配到3个主节点中每个节点平均分5461个槽

docker exec -it redis-7000 redis-cli -p 7000 cluster addslots {0..5460} # 7002 5461~10920 

docker exec -it redis-7002 redis-cli -p 7002 cluster addslots {5461..10920} # 7004 10920~16383 

docker exec -it redis-7004 redis-cli -p 7004 cluster addslots {10921..16383} 

查看集群情况:

docker  exec  -it  redis-7000 redis-cli  -p 7000 cluster info

查看槽点情况:

docker  exec  -it  redis-7000  redis-cli  -p 7000  cluster  slots

测试:

  docker  exec -it redis-7000 redis-cli  -c -p 7000

常见问题:

  1. 在启动redis服务的时候,WARNING: IPv4 forwarding is disabled. Networking will not work

vim /etc/sysctl.conf

新增
net.ipv4.ip_forward=1 重启network
systemctl restart network 查看
sysctl net.ipv4.ip_forward

Redis集群搭建-Docker的更多相关文章

  1. Docker Swarm redis 集群搭建

    Docker Swarm redis 集群搭建 环境1: 系统:Linux Centos 7.4 x64 内核:Linux docker 3.10.0-693.2.2.el7.x86_64 Docke ...

  2. 基于Dokcer搭建Redis集群搭建(主从集群)

    最近陆陆续续有不少园友加我好友咨询 redis 集群搭建的问题,我觉得之前写的这篇 <基于Docker的Redis集群搭建> 文章一定是有问题了,所以我花了几分钟浏览之前的文章总结了下面几 ...

  3. 25.redis集群搭建笔记

    ###Redis集群### 0.准备 软件: redis-3.0.0.gem redis-3.0.0.tar.gz#源码   1.安装ruby环境 redis基于ruby槽位计算,hash算法技术,k ...

  4. Redis 集群搭建详细指南

    先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...

  5. 二、redis集群搭建

    redis集群搭建 redis3.0后支持集群.集群中应该至少有三个节点,每个节点有一备份节点.需要6台服务器.搭建伪分布式,需要6个redis实例.搭建集群的步骤: 一.安装单机版redis 第一步 ...

  6. redis集群搭建及注意事项

    上一篇:redis的安装及注意事项 这里,在一个Linux虚拟机上搭建6个节点的redis伪集群,思路很简单,一台虚拟机上开启6个redis实例,每个redis实例有自己的端口.这样的话,相当于模拟出 ...

  7. Linux Redis集群搭建与集群客户端实现(Python)

    硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...

  8. [转载] Redis集群搭建最佳实践

    转载自http://blog.csdn.net/sweetvvck/article/details/38315149?utm_source=tuicool 要搭建Redis集群,首先得考虑下面的几个问 ...

  9. Linux Redis集群搭建与集群客户端实现

    硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...

  10. Redis集群搭建-韩国庆

    认真一步一步搭建下来,就可以成功.... Redis-cluster集群架构讲解 redis集群专业名词称之为Redis-cluster,redis集群是从3.0版本以后才有的概念,也就是说在3.0之 ...

随机推荐

  1. vue3 如何获取 dom

    1. 通过 ref     1. 在 html 标签上指定 ref 属性     2. 在 setup 中定义并返回.注意:标签上的 ref 属性名需要跟 setup 中的对应 <h1 ref= ...

  2. CSS & JS Effect – 画三角形 Triangle

    前言 画三角形有什么用? 可以做这样的 Design 参考 5 Ways To Create A Triangle With CSS Border Triangle 用 border 做 三角形应该是 ...

  3. 算法学习-CDQ分治

    对于二维偏序,为普通的求逆序对,只需要先排序一遍,然后树状数组或双指针即可 而三位偏序甚至更高,则需要用 CDQ 分治,简单来说,就是将树状数组和双指针结合 操作步骤如下: 1.开始将数组按第一维排序 ...

  4. Qt中一些关于中文的使用

    本文包含以下内容: 中文编码 按中文字典排序 中文首字母查找 版本:Qt5.14.2 中文编码     在一些老项目中,发现项目中使用的文件是GBK编码,而新项目使用的是Unicode编码,在有一些操 ...

  5. 《Spring Data JPA从入门到精通》内容简介、前言

    内容简介 本书以Spring Boot为技术基础,从入门到精通,由浅入深地介绍Spring Data JPA的使用.有语法,有实践,有原理剖析. 本书分为12章,内容包括整体认识JPA.JPA基础查询 ...

  6. vue 赶鸭子上架入门笔记(一) 安装开发环境

    准备接手一个 vue 的前端项目,从零开始学习 vue.目标不高大上,能看得懂代码,能进行简单的修改,改完能打包和部署. 首先解决 vue 开发环境的准备.访问 Node.js 官方网站,下载适合你操 ...

  7. glance对接ceph

    目录 glance对接ceph 1. 上传镜像 2. 对接ceph 2.1 创建池 2.2 创建用户 2.3 下发ceph文件 2.4 修改globals文件 2.5 更新glance配置 3. 上传 ...

  8. CPU缓存伪共享

    CPU缓存什么东西?当然这个问题很多人有可能觉得比较傻,CPU缓存什么,肯定是缓存数据(代码)啊,要不然还能缓存啥,这个确实没问题,但是CPU到底缓存什么样的数据呢?因为对CPU来说,无论是指令,还是 ...

  9. uniapp电子签名盖章实现详解

    项目开发中用到了电子签名.签好名的图片需要手动实现横竖屏旋转.并将绘制的签名图片放到pdf转换后的base64的图片上,可以手动拖动签名到合适的位置,最后合成签名和合同图片并导出.和以往一样,先发一下 ...

  10. 使用zipkin配置spring boot的链路器(httpclient、restTemplate)

    一.首先导入zipkin需要的依赖 <!--zipkin-brave start--> <dependency> <groupId>io.zipkin.brave& ...