利用docker部署redis集群
目录
一、首先配置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集群的更多相关文章
- laravel项目利用twemproxy部署redis集群的完整步骤
Twemproxy是一个代理服务器,可以通过它减少Memcached或Redis服务器所打开的连接数.下面这篇文章主要给大家介绍了关于laravel项目利用twemproxy部署redis集群的相关资 ...
- 利用Docker搭建Redis集群
Redis集群搭建 运行Redis镜像 分别使用以下命令启动3个Redis docker run --name redis-6379 -p 6379:6379 -d hub.c.163.com/lib ...
- docker部署redis集群
一.查询最新redis镜像 docker search redis 二.下载redis镜像 docker pull redis 三.创建一个文件夹,以及创建redis-cluster.tmpl模板文件 ...
- Docker部署Redis集群(主从复制 高可用)
环境 vmware12+centos7 关于环境安装可以参考我的另一篇博客 https://www.cnblogs.com/pengboke/p/13063168.html 1.清理环境 我这里用的虚 ...
- 利用 docker 部署 elasticsearch 集群(单节点多实例)
文章目录 1.环境介绍 2.拉取 `elasticserach` 镜像 3.创建 `elasticsearch` 数据目录 4.创建 `elasticsearch` 配置文件 5.配置JVM线程数量限 ...
- 基于Docker的redis集群搭建
Redis集群官方介绍:http://www.redis.cn/topics/cluster-tutorial.html 基于Docker搭建Redis集群 环境:6个节点,三主三从 制作Redis镜 ...
- docker 实现redis集群搭建
摘要:接触docker以来,似乎养成了一种习惯,安装什么应用软件都想往docker方向做,今天就想来尝试下使用docker搭建redis集群. 首先,我们需要理论知识:Redis Cluster是Re ...
- 5分钟实现用docker搭建Redis集群模式和哨兵模式
如果让你为开发.测试环境分别搭一套哨兵和集群模式的redis,你最快需要多久,或许你需要一天?2小时?事实是可以更短. 是的,你已经猜到了,用docker部署,真的只需要十几分钟. 一.准备工作 拉取 ...
- window下使用Redis Cluster部署Redis集群
日常的项目很多时候都需要用到缓存.redis算是一个比较好的选择.一般情况下做一个主从就可以满足一些比较小的项目需要.在一些并发量比较大的项目可能就需要用到集群了,redis在Windows下做集群可 ...
随机推荐
- Python入门经典练习题
[程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? num_list=[]cou=0for i in range(1,5): for j in range( ...
- 用VLC做流媒体服务器
VLC确切来说只是个播放器,是videolan的开源产品,videolan原来还有一个VLM,是服务器端,专门用来做流媒体服务器的,但是现在VLM的功能已经都集成进VLC了,所以也就可以用VLC来做流 ...
- javascript之原型prototype
理解JavaScript原型 http://blog.jobbole.com/9648/ Web程序员应该知道的Javascript prototype原理 http://www.leonzhang. ...
- Android 开发:开源库Speex支持arm64的动态库文件
随着处理器制造工艺的不断进步,和Android系统的不断发展,最近出了arm64-v8a的架构,由于项目中用到了speex的第三方语音编解码的动态库,其他架构的处理器暂不用说,一切正常,唯独到arm6 ...
- HDOJ1059(多重背包)
1.解法一:多重背包 #include<iostream> #include<cstdio> using namespace std; #define MAX(a,b) (a& ...
- 【转】 Pro Android学习笔记(二七):用户界面和控制(15):FrameLayout
FrameLayout FrameLayout通常只包含一个控件.如果我们在FrameLayout中设置多个控件,则第二个控件会堆叠在第一个控件上面,如此类推,一层一层地叠上去.下面的例子,我们在Fr ...
- VisualGDB系列2:VisualGDB对Linux平台的支持特性
根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指正. 1 复杂问题的直观解决方案 只需要轻点几 ...
- VisualGDB系列1:VisualGDB总体概述
根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指正. 本文总体介绍VisualGDB能给你带来 ...
- TP5隐藏url中的index.php
在public文件夹下,有个.htacess文件,没有则新建一个, 如果已有这个文件,原文件内容如下: <IfModule mod_rewrite.c> Options +FollowSy ...
- Mysql 数据库时间更新字段
关于时间更新: 创建时间: CURRENT_TIMESTAMP 更新时间: 勾选根据时间戳更新