Redis集群搭建-Docker
使用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的更多相关文章
- Docker Swarm redis 集群搭建
Docker Swarm redis 集群搭建 环境1: 系统:Linux Centos 7.4 x64 内核:Linux docker 3.10.0-693.2.2.el7.x86_64 Docke ...
- 基于Dokcer搭建Redis集群搭建(主从集群)
最近陆陆续续有不少园友加我好友咨询 redis 集群搭建的问题,我觉得之前写的这篇 <基于Docker的Redis集群搭建> 文章一定是有问题了,所以我花了几分钟浏览之前的文章总结了下面几 ...
- 25.redis集群搭建笔记
###Redis集群### 0.准备 软件: redis-3.0.0.gem redis-3.0.0.tar.gz#源码 1.安装ruby环境 redis基于ruby槽位计算,hash算法技术,k ...
- Redis 集群搭建详细指南
先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...
- 二、redis集群搭建
redis集群搭建 redis3.0后支持集群.集群中应该至少有三个节点,每个节点有一备份节点.需要6台服务器.搭建伪分布式,需要6个redis实例.搭建集群的步骤: 一.安装单机版redis 第一步 ...
- redis集群搭建及注意事项
上一篇:redis的安装及注意事项 这里,在一个Linux虚拟机上搭建6个节点的redis伪集群,思路很简单,一台虚拟机上开启6个redis实例,每个redis实例有自己的端口.这样的话,相当于模拟出 ...
- Linux Redis集群搭建与集群客户端实现(Python)
硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...
- [转载] Redis集群搭建最佳实践
转载自http://blog.csdn.net/sweetvvck/article/details/38315149?utm_source=tuicool 要搭建Redis集群,首先得考虑下面的几个问 ...
- Linux Redis集群搭建与集群客户端实现
硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...
- Redis集群搭建-韩国庆
认真一步一步搭建下来,就可以成功.... Redis-cluster集群架构讲解 redis集群专业名词称之为Redis-cluster,redis集群是从3.0版本以后才有的概念,也就是说在3.0之 ...
随机推荐
- vue3 如何获取 dom
1. 通过 ref 1. 在 html 标签上指定 ref 属性 2. 在 setup 中定义并返回.注意:标签上的 ref 属性名需要跟 setup 中的对应 <h1 ref= ...
- CSS & JS Effect – 画三角形 Triangle
前言 画三角形有什么用? 可以做这样的 Design 参考 5 Ways To Create A Triangle With CSS Border Triangle 用 border 做 三角形应该是 ...
- 算法学习-CDQ分治
对于二维偏序,为普通的求逆序对,只需要先排序一遍,然后树状数组或双指针即可 而三位偏序甚至更高,则需要用 CDQ 分治,简单来说,就是将树状数组和双指针结合 操作步骤如下: 1.开始将数组按第一维排序 ...
- Qt中一些关于中文的使用
本文包含以下内容: 中文编码 按中文字典排序 中文首字母查找 版本:Qt5.14.2 中文编码 在一些老项目中,发现项目中使用的文件是GBK编码,而新项目使用的是Unicode编码,在有一些操 ...
- 《Spring Data JPA从入门到精通》内容简介、前言
内容简介 本书以Spring Boot为技术基础,从入门到精通,由浅入深地介绍Spring Data JPA的使用.有语法,有实践,有原理剖析. 本书分为12章,内容包括整体认识JPA.JPA基础查询 ...
- vue 赶鸭子上架入门笔记(一) 安装开发环境
准备接手一个 vue 的前端项目,从零开始学习 vue.目标不高大上,能看得懂代码,能进行简单的修改,改完能打包和部署. 首先解决 vue 开发环境的准备.访问 Node.js 官方网站,下载适合你操 ...
- glance对接ceph
目录 glance对接ceph 1. 上传镜像 2. 对接ceph 2.1 创建池 2.2 创建用户 2.3 下发ceph文件 2.4 修改globals文件 2.5 更新glance配置 3. 上传 ...
- CPU缓存伪共享
CPU缓存什么东西?当然这个问题很多人有可能觉得比较傻,CPU缓存什么,肯定是缓存数据(代码)啊,要不然还能缓存啥,这个确实没问题,但是CPU到底缓存什么样的数据呢?因为对CPU来说,无论是指令,还是 ...
- uniapp电子签名盖章实现详解
项目开发中用到了电子签名.签好名的图片需要手动实现横竖屏旋转.并将绘制的签名图片放到pdf转换后的base64的图片上,可以手动拖动签名到合适的位置,最后合成签名和合同图片并导出.和以往一样,先发一下 ...
- 使用zipkin配置spring boot的链路器(httpclient、restTemplate)
一.首先导入zipkin需要的依赖 <!--zipkin-brave start--> <dependency> <groupId>io.zipkin.brave& ...