目录

一、首先配置redis.conf文件,... 1

1、获取配置文件... 1

2、修改各配置文件的参数... 2

二、下载redis镜像、启动容器... 2

1、创建网络... 2

2、拉取镜像并启动容器... 2

三、设置redis集群... 3

1、安装ruby. 3

2、安装redis-cluster的ruby接口,并启动集群... 3

3、测试... 3

redis集群的安装:版本至少是3.2.8及其以上,这里以3.2.8版本为例说明

本次在本地主机启动6个redis容器,相当于6个节点,容器使用的ip: 192.168.100.101~106

本文档部署时建议直接复制粘贴

一、首先配置redis.conf文件,

1、获取配置文件

[root@cdh01 ~]# wget http://download.redis.io/releases/redis-3.2.8.tar.gz

[root@cdh01 ~]# tar xf redis-3.2.8.tar.gz

[root@cdh01 ~]# mkdir -p /myredis/conf/

[root@cdh01 ~]# for i in `seq 6`;do cp redis-3.2.8/redis.conf /myredis/conf/redis$i.conf;done

[root@cdh01 ~]# ls /myredis/conf/     #可以看到共6各文件,每个容器对应一个文件

redis1.conf  redis2.conf  redis3.conf  redis4.conf  redis5.conf  redis6.conf

2、修改各配置文件的参数

a、修改监听

[root@cdh01 ~]# for i in `seq 6`;do sed -i "s/bind 127.0.0.1/bind 192.168.100.10$i/g" /myredis/conf/redis$i.conf;done

b、开启集群功能

[root@cdh01 ~]# for i in `seq 6`;do sed -i 's/# cluster-enabled yes/cluster-enabled yes/g' /myredis/conf/redis$i.conf;done

c、启动AOF增量持久化策略

[root@cdh01 ~]# for i in `seq 6`;do sed -i 's/appendonly no/appendonly yes/g' /myredis/conf/redis$i.conf;done

二、下载redis镜像、启动容器

1、创建网络

docker network create --subnet=192.168.100.0/24 staticnet

docker network ls

2、拉取镜像并启动容器

[root@cdh01 ~]# docker pull redis:3.2.8

[root@cdh01 ~]# for i in `seq 6`;do docker run -d -v /myredis/conf/redis$i.conf:/usr/local/etc/redis/redis.conf -p 700$i:6379 --name myredis$i --net staticnet --ip 192.168.100.10$i redis:3.2.8 redis-server /usr/local/etc/redis/redis.conf;done

三、设置redis集群

1、安装ruby

首先安装rvm,然后用rvm安装ruby

a.安装rvm

http://rvm.io/rvm/security #查看最新的key,下面的key可能会失效

[root@150 ~]# gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

[root@150 ~]# \curl -sSL https://get.rvm.io | bash -s stable

[root@150 ~]# source /usr/local/rvm/scripts/rvm

b.查看RVM中ruby的版本

rvm list known | grep ruby

c.选择一个版本ruby版本安装,这边选择的是ruby 2.4.1

rvm install 2.4.1

d.使用ruby版本并设置为默认版本

rvm use 2.4.1 --default

e.将ruby和gem放入到全局变量

如果是按照前面安装的,ruby和gem的位置应该在/usr/local/rvm/rubies/ruby-2.4.1/bin/这个目录下,如果不在,可以使用whereis ruby 和 whereis  gem来查找,找到位置后,使用软链命令

ln -s /usr/local/rvm/rubies/ruby-2.4.1/bin/gem  /usr/bin/

ln -s /usr/local/rvm/rubies/ruby-2.4.1/bin/ruby  /usr/bin/

到这里ruby就安装完成了

 

2、安装redis-cluster的ruby接口,并启动集群

[root@cdh01 ~]# gem install redis  #安装接口

[root@cdh01 ~]# ruby /root/redis-3.2.8/src/redis-trib.rb create --replicas 1 192.168.100.101:6379 192.168.100.102:6379 192.168.100.103:6379 192.168.100.104:6379 192.168.100.105:6379 192.168.100.106:6379

如果一切顺利,你会看到类似这样的消息: [OK] All 16384 slots covered

3、测试

本地连接可以用容器的ip

redis-cli -h 192.168.100.101 -c -p 6379

远程机器连接要使用宿主机的的ip

[root@bigdb01 ~]# redis-cli -h 172.16.20.90 -c -p 7004

 

结语:至此redis的单机与集群的安装和启动就成功了

利用docker部署redis集群的更多相关文章

  1. laravel项目利用twemproxy部署redis集群的完整步骤

    Twemproxy是一个代理服务器,可以通过它减少Memcached或Redis服务器所打开的连接数.下面这篇文章主要给大家介绍了关于laravel项目利用twemproxy部署redis集群的相关资 ...

  2. 利用Docker搭建Redis集群

    Redis集群搭建 运行Redis镜像 分别使用以下命令启动3个Redis docker run --name redis-6379 -p 6379:6379 -d hub.c.163.com/lib ...

  3. docker部署redis集群

    一.查询最新redis镜像 docker search redis 二.下载redis镜像 docker pull redis 三.创建一个文件夹,以及创建redis-cluster.tmpl模板文件 ...

  4. Docker部署Redis集群(主从复制 高可用)

    环境 vmware12+centos7 关于环境安装可以参考我的另一篇博客 https://www.cnblogs.com/pengboke/p/13063168.html 1.清理环境 我这里用的虚 ...

  5. 利用 docker 部署 elasticsearch 集群(单节点多实例)

    文章目录 1.环境介绍 2.拉取 `elasticserach` 镜像 3.创建 `elasticsearch` 数据目录 4.创建 `elasticsearch` 配置文件 5.配置JVM线程数量限 ...

  6. 基于Docker的redis集群搭建

    Redis集群官方介绍:http://www.redis.cn/topics/cluster-tutorial.html 基于Docker搭建Redis集群 环境:6个节点,三主三从 制作Redis镜 ...

  7. docker 实现redis集群搭建

    摘要:接触docker以来,似乎养成了一种习惯,安装什么应用软件都想往docker方向做,今天就想来尝试下使用docker搭建redis集群. 首先,我们需要理论知识:Redis Cluster是Re ...

  8. 5分钟实现用docker搭建Redis集群模式和哨兵模式

    如果让你为开发.测试环境分别搭一套哨兵和集群模式的redis,你最快需要多久,或许你需要一天?2小时?事实是可以更短. 是的,你已经猜到了,用docker部署,真的只需要十几分钟. 一.准备工作 拉取 ...

  9. window下使用Redis Cluster部署Redis集群

    日常的项目很多时候都需要用到缓存.redis算是一个比较好的选择.一般情况下做一个主从就可以满足一些比较小的项目需要.在一些并发量比较大的项目可能就需要用到集群了,redis在Windows下做集群可 ...

随机推荐

  1. bzoj1014火星人

    ...强迫症终于A了这道题  bzoj前30道全A指日可待 splay维护这个结点控制的字符串的hash值 每次旋转重新算一遍就可以了 查询的时候跑一个二分 讲起来很简单但是还是调了1h才调对了spl ...

  2. ACM学习历程—HDU5422 Rikka with Graph(贪心)

    Problem Description As we know, Rikka is poor at math. Yuta is worrying about this situation, so he ...

  3. [转]HTTP头的Expires与Cache-control

    1.概念 Cache-control用于控制HTTP缓存(在HTTP/1.0中可能部分没实现,仅仅实现了Pragma: no-cache) 数据包中的格式: Cache-Control: cache- ...

  4. Erlang generic standard behaviours -- summary

    gen_server 相关的片段分析得也差不多了, 这篇作为一个简要的总结.这一系列相关的分析暂且告一段落(之后如有必要,还会回来的 ^^ ),下一个系列主要是以pool 相关, 包括但不仅限于开源项 ...

  5. C#某月的第一天和最后一天

    1.本月的第一天===>DateTime.Now.AddDays(1 - DateTime.Now.Day);//当前日期减去当前日期和本月一号相差天数 2.本月的最后一天===>Date ...

  6. 【转】Pro Android学习笔记(十七):用户界面和控制(5):日期和时间控件

    目录(?)[-] DatePicker和TimePicker控件 DigitalClock和AnalogClock控件 DatePicker和TimePicker控件 使用DatePicker和Tim ...

  7. js右击事件

    先贴代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF ...

  8. python version 2.7 required,which was not found in

    python version 2.7 required,which was not found in 出现上面这种情况的原因我推测有两种: 1.NumPy和SciPy官方网站上只提供了32bit的文件 ...

  9. JavaScript接口

    JavaScript中实现接口的方法有三种: 第一种,使用注释的方法实现接口 特点:(1)最简单,但是功能最弱(2)利用 interface和 implement"文字"(3)把他 ...

  10. Asp.net Core学习笔记

    之前记在github上的,现在搬运过来 变化还是很大的,感觉和Nodejs有点类似,比如中间件的使用 ,努力学习ing... 优点 不依赖IIS 开源和跨平台 中间件支持 性能优化 无所不在的依赖注入 ...