docker搭建redis集群

在原来VM使用redis的时候,搭建的时候,需要下载redis的源码,然后进行编译,安装,配置文件,启动服务,好麻烦的。。。当使用docker的时候,指令太少了,简单到爆炸。。。。

作为一个缓存服务器或者是数据存储服务器,。。。redis还是相当简单的。。

搭建redis集群

1、首先需要将redis的镜像文件下载到本地:

当直接pull redis的时候,没有选择版本号,那么使用的是最新版本,最新版本的redis是4.0.6。。。。

这版本发展的真是快,生产环境基本上使用的版本号为2.8。。。。

2、 运行redis master服务

3、 下载redis的配置文件

[root@docker-1 ~]# wget http://download.redis.io/redis-stable/redis.conf

在以上的配置主要将redis的主服务器名称写入到配置文件中,记得原来可以直接写master的主机名或者ip就好了,现在。。。居然还要写上相应的端口。

4、 运行redis的slave服务器

在此处需要注意的是,两个docker默认都是使用桥接模式,也就是使用的是docker0的桥,从而都会分配IP地址,在使用--link的时候,主要是为了从容器里面能够直接解析这个主机名,不需要在配置文件写上ip地址,由于是使用的自定义的配置文件,从而需要将本地的配置文件进行挂载上去,也就是-v参数的作用,将这个配置文件挂载到redis服务器,然后使用这个配置文件启动这个容器。

5、 出错的时候如果检查错误

在检查错误的时候,主要是根据日志来检查。

如上的错误中,表示无法打开redis的配置文件,也就是在挂载的时候,权限不对,然而这边使用的是devicemapper驱动,从而权限不对,所以无法打开这个配置文件,使用--privileged参数run即可。

6、 容器其他

在使用容器运行服务的时候,很干净,很清爽。。。。

如上,运行的是redis的服务,这个只有这个一个进程。。。而且是使用的相应的用户来进行运行,安全性也还是不错的。

总结

在这种环境下,一般是实验性的测试,主备放在同一个机器上是不可以的,生产环境一般主备都分布在不同的机器上面,毕竟。。。鸡蛋不要放在一个篮子里。。。

看下存在的网络情况及主机名的解析:

如上,这个是安装docker服务的时候,自动创建的桥接接口docker0接口。

桥接模式如下所示:

docker搭建redis集群

这个可以从物理主机上看见两个虚拟的网卡,其实也就是和容器的网卡对应的,docker0桥接的相当于一个虚拟的交换机,从而容器之间能相互通信,和物理主机也能进行通信。

有一位旅客到乡间旅游,看到一位农夫把喂牛的草料铲到一间小茅屋的屋檐上,不免感到奇怪。于是就问道:“老伯伯,你为什么不把喂牛的草放在地上,让它好好的吃呢?”老伯伯回答道:“这种草质量不好,我要是放在地上它就不会吃,但是我放到让它可以勉强够得着的屋檐上,它会努力去吃,直到把全部草料吃个精光!”

这个小故事告诉我们学习PHP全栈laravel实战、swoole、redis、高并发等喂(xiaopingguo950321)

南极鸟团(722584796)

相关推荐