docker配置redis6.0集群方案

docker安装

请直接挂载课程配套的Centos7.x镜像, docker官方建议使用CentOS7

(1)yum 包更新到最新

sudo yum update

(2)安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

(3)设置yum源为阿里云

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

(4)安装docker

sudo yum install docker-ce

(5)安装后查看docker版本

docker -v

redis安装

docker pull redis

docker inspect redis 看看redis的版本

"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"GOSU_VERSION=1.12",
"REDIS_VERSION=6.0.5",
"REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis-6.0.5.tar.gz",
"REDIS_DOWNLOAD_SHA=42cf86a114d2a451b898fcda96acd4d01062a7dbaaad2801d9164a36f898f596"
]

redis配置

  • docker启动redis
docker run -d --net=redis_net1 --ip=172.19.0.2 -p 7000:7000 -v ~/redis_cluster/7000/redis.conf:/usr/local/etc/redis/redis.conf -v ~/redis_cluster/7000/data:/data --name=r1 redis redis-server /usr/local/etc/redis/redis.conf
docker run -d --net=redis_net1 --ip=172.19.0.3 -p 7001:7001 -v ~/redis_cluster/7001/redis.conf:/usr/local/etc/redis/redis.conf -v ~/redis_cluster/7001/data:/data --name=r2 redis redis-server /usr/local/etc/redis/redis.conf
docker run -d --net=redis_net1 --ip=172.19.0.4 -p 7002:7002 -v ~/redis_cluster/7002/redis.conf:/usr/local/etc/redis/redis.conf -v ~/redis_cluster/7002/data:/data --name=r3 redis redis-server /usr/local/etc/redis/redis.conf
docker run -d --net=redis_net1 --ip=172.19.0.5 -p 7003:7003 -v ~/redis_cluster/7003/redis.conf:/usr/local/etc/redis/redis.conf -v ~/redis_cluster/7003/data:/data --name=r4 redis redis-server /usr/local/etc/redis/redis.conf
docker run -d --net=redis_net1 --ip=172.19.0.6 -p 7004:7004 -v ~/redis_cluster/7004/redis.conf:/usr/local/etc/redis/redis.conf -v ~/redis_cluster/7004/data:/data --name=r5 redis redis-server /usr/local/etc/redis/redis.conf
docker run -d --net=redis_net1 --ip=172.19.0.7 -p 7005:7005 -v ~/redis_cluster/7005/redis.conf:/usr/local/etc/redis/redis.conf -v ~/redis_cluster/7005/data:/data --name=r6 redis redis-server /usr/local/etc/redis/redis.conf

创建redis集群

redis-cli --cluster create 172.19.0.2:7000 172.19.0.3:7001 172.19.0.4:7002 172.19.0.5:7003 172.19.0.6:7004 172.19.0.7:7005 --cluster-replicas 1

输出

>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 172.19.0.6:7004 to 172.19.0.2:7000
Adding replica 172.19.0.7:7005 to 172.19.0.3:7001
Adding replica 172.19.0.5:7003 to 172.19.0.4:7002
M: b8fd74f8cdebf46d5e64694db040576e8d7d0609 172.19.0.2:7000
slots:[0-5460] (5461 slots) master
M: aea806a312049e4c3235e7ea24535a9a45773136 172.19.0.3:7001
slots:[5461-10922] (5462 slots) master
M: 90251b4a1d3c4357e5e41a1fc20863ff43155096 172.19.0.4:7002
slots:[10923-16383] (5461 slots) master
S: 4349d4b9c31de77a8d6b32db2a75b4fe1e34c0e0 172.19.0.5:7003
replicates 90251b4a1d3c4357e5e41a1fc20863ff43155096
S: de30cea9db4d5788f949e7d8939b7b552d7610b3 172.19.0.6:7004
replicates b8fd74f8cdebf46d5e64694db040576e8d7d0609
S: 673518cedabea7dccf2a5c560fb36ef2154cb860 172.19.0.7:7005
replicates aea806a312049e4c3235e7ea24535a9a45773136
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
.
>>> Performing Cluster Check (using node 172.19.0.2:7000)
M: b8fd74f8cdebf46d5e64694db040576e8d7d0609 172.19.0.2:7000
slots:[0-5460] (5461 slots) master
1 additional replica(s)
M: 90251b4a1d3c4357e5e41a1fc20863ff43155096 172.19.0.4:7002
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
M: aea806a312049e4c3235e7ea24535a9a45773136 172.19.0.3:7001
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
S: 673518cedabea7dccf2a5c560fb36ef2154cb860 172.19.0.7:7005
slots: (0 slots) slave
replicates aea806a312049e4c3235e7ea24535a9a45773136
S: 4349d4b9c31de77a8d6b32db2a75b4fe1e34c0e0 172.19.0.5:7003
slots: (0 slots) slave
replicates 90251b4a1d3c4357e5e41a1fc20863ff43155096
S: de30cea9db4d5788f949e7d8939b7b552d7610b3 172.19.0.6:7004
slots: (0 slots) slave
replicates b8fd74f8cdebf46d5e64694db040576e8d7d0609
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

最终要的是后面两个OK, 如果是这样那么配置成功

现在在docker里面用redis-cli试试看看配置成功了没有

root@ca396eb86f71:/bin# redis-cli -p 7000 cluster nodes

这里我们docker exec连接的redis节点本身就是7000, 如果写上7001可能不会显示下面这些信息了

90251b4a1d3c4357e5e41a1fc20863ff43155096 172.19.0.4:7002@17002 master - 0 1594611038536 3 connected 10923-16383
aea806a312049e4c3235e7ea24535a9a45773136 172.19.0.3:7001@17001 master - 0 1594611037000 2 connected 5461-10922
b8fd74f8cdebf46d5e64694db040576e8d7d0609 172.19.0.2:7000@17000 myself,master - 0 1594611038000 1 connected 0-5460
673518cedabea7dccf2a5c560fb36ef2154cb860 172.19.0.7:7005@17005 slave aea806a312049e4c3235e7ea24535a9a45773136 0 1594611037832 6 connected
4349d4b9c31de77a8d6b32db2a75b4fe1e34c0e0 172.19.0.5:7003@17003 slave 90251b4a1d3c4357e5e41a1fc20863ff43155096 0 1594611038000 4 connected
de30cea9db4d5788f949e7d8939b7b552d7610b3 172.19.0.6:7004@17004 slave b8fd74f8cdebf46d5e64694db040576e8d7d0609 0 1594611038838 5 connected

主机上安装redis

在主机上编译redis6.0(需要注意gcc版本好像), 我在主机上编译的是redis5, 然后给我改成redis6 发现编译时, gcc版本过低了, 主机4.8版本的gcc, 需要更新到9.3

安装redis6.0

  • 检测gcc版本

gcc -v 如果版本低于5, 需要升级

这里我们升级到gcc9

yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
  • 设置gcc版本
#临时修改gcc版本
scl enable devtoolset-9 bash
#永久修改gcc版本
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

再看看gcc的版本

只要是9就行

  • 编译redis
cd  redis-6.0.5
make all && make install

编译成功

[root@centOS redis-6.0.5]# make install
cd src && make install
make[1]: Entering directory `/root/redis-6.0.5/src'
CC Makefile.dep
make[1]: Leaving directory `/root/redis-6.0.5/src'
make[1]: Entering directory `/root/redis-6.0.5/src'
Hint: It's a good idea to run 'make test' ;) INSTALL install
INSTALL install
INSTALL install
INSTALL install
INSTALL install
make[1]: Leaving directory `/root/redis-6.0.5/src'

redis-cli连接集群

[root@centOS redis-6.0.5]# redis-cli -c -h 172.19.0.2 -p 7000
172.19.0.2:7000> set name zhazha
-> Redirected to slot [5798] located at 172.19.0.3:7001
OK
172.19.0.3:7001> get name
"zhazha"
172.19.0.3:7001>

集群配置成功

注意企业中不这样用, 太慢了, 所以待续

docker配置redis6.0.5集群的更多相关文章

  1. Docker:docker搭建redis6.0.8集群

    下载redis镜像 #拉取镜像 docker pull redis:6.0.8 查看版本 #查看版本 docker inspect redis 生成redis.conf配置文件 #在 /home/re ...

  2. Redis6.0.6集群服务搭建

    实现目标 一台主机上搭建3主3从高可用redis集群 环境 Linux :CentOS7 Redis : 6.0.6 准备工作 1.查看是否有安装wget命令,如果没有安装使用yum命令安装wgt命令 ...

  3. Redis-4.0.11集群配置

    版本:redis-3.0.5 redis-3.2.0  redis-3.2.9  redis-4.0.11 参考:http://redis.io/topics/cluster-tutorial. 集群 ...

  4. Redis-5.0.5集群配置

    版本:redis-5.0.5 参考:http://redis.io/topics/cluster-tutorial. 集群部署交互式命令行工具:https://github.com/eyjian/re ...

  5. Redis 3.0 Cluster集群配置

    Redis 3.0 Cluster集群配置 安装环境依赖 安装gcc:yum install gcc 安装zlib:yum install zib 安装ruby:yum install ruby 安装 ...

  6. 配置redis 4.0.11 集群

    配置redis 4.0.11 集群 准备redis 软件和redis配置文件 启动Redis服务 /data/soft/redis/src/redis-check-aof --fix /log/red ...

  7. docker环境下solrcloud+zookeeper集群部署教程

    前言:两个月前的16年11月份完成的配置,使用的solr6.1和zookeeper3.4,刚刚写成blog,目前版本可能有小版本的变化. 本例完成结果为:在docker环境下部署solrcloud集群 ...

  8. 使用Docker Swarm搭建分布式爬虫集群

    https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653195618&idx=2&sn=b7e992da6bd1b2 ...

  9. Docker搭建MySQL的PXC集群

    原文:Docker搭建MySQL的PXC集群 一.简介 PXC属于一套近乎完美的mysql高可用集群解决方案,相比那些比较传统的基于主从复制模式的集群架构MHA和MM+keepalived,galer ...

随机推荐

  1. cgic: CGI的C函数库-(转自COS)

    下载回源码包以后,就3个文件:cgic.c      函数库capture.c   一个很简单的CGI例子,仅仅输出两行提示文字cgictest.c  一个演示读取form表单数据的CGI例子 首先在 ...

  2. Linux 性能监控工具

  3. 六、.net core (.NET 6)程序部署到Docker上

    使用Docker部署应用程序 首先确保已经安装Docker 桌面软件,如下图: 然后,把需要部署到Docker上面的项目,咱们先添加Docker的支持,启动项目右键 -> 添加 -> Do ...

  4. 十、.net core(.NET 6)搭建ElasticSearch(ES)系列之Java环境搭建和Node.js环境搭建

    安装java jdk环境:我此处使用的是jdk16版本.下载地址: https://www.oracle.com/java/technologies/javase-jdk16-downloads.ht ...

  5. Linux BSP非标准HDMI分辨率

    Linux BSP非标准HDMI分辨率 Intrinsyc公司发布了它的一个新的Linux BSP软件的发布 打开-Q820 开发套件基于Linux内核版本.支持的软件功能包括HDMI输出,可以支持标 ...

  6. Tengine Web服务器概述

    Tengine Web服务器概述 Tengine是由淘宝网发起的Web服务器项目.在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性.目的是打造一个高效.安全的Web平台. 发展 ...

  7. 使用TENSORRT和NVIDIA-DOCKER部署深部神经网络

    使用TENSORRT和NVIDIA-DOCKER部署深部神经网络 当前部署工作流

  8. 短波红外(SWIR)相机camera

    短波红外(SWIR)相机camera AVs Can't Drive Everywhere. Can TriEye's SWIR Camera Help? TriEye的短波红外(SWIR)摄像机能否 ...

  9. 开源电路分享のFalling Star Board

    设计初衷 想自己做个能连网的时钟,结合RT-thread,显示个天气预报什么的,想想就挺有趣的.考虑到当前的芯片价格,和后续的设计,万一还有个啥奇妙的想法呢,就把这个做成了核心板. 一开始就只做了最小 ...

  10. mybatis之Param注解

    一.作用 使用@Param注解表示给参数命名,名称就是括号中的内容.给参数命名,然后在映射文件中就能根据名称获取参数值了.在mybatis中我们常常要使用到多个参数,但是在xml中的parameter ...