直接从docker最新版本,要就要最新的6.x
docker pull reids
下载好了镜像之后,就需要下载配置文件,docker的reids是不带配置文件的
# 这是我自己新建的文件夹地址,这里你们根据自己喜好来
cd /data/reids
wget http://download.redis.io/redis-stable/redis.conf
# 下载好了配置文件后,需要更改一些默认的东西
# 比如: 守护进程进行,端口号,绑定IP,一些日志,持久化文件地址等
# 完成上面的准备工作之后
docker run -p 6379:6379 --name=my-redis -v /data/redis:/usr/local/etc/redis -d redis-server /usr/local/etc/redis/redis.cnf
# 这里我是挂载的文件夹,为什么不挂载文件呢? 这也是我之前遇到的坑,他妈的redis根本就没有文件给我挂载
# 所以我们挂载到对应的文件夹,我的文件夹是有刚才下载的配置文件的,这个你们也注意一下
# 毕竟我走的坑不大但是它多,我就是这样,大问题基本没有,但是全是小问题
# 这 run 的命令哪些 -d -v 什么的就不解释了,如果你不知道,就需要补一补docker了
完成上面的步骤基本就能够运行自己的redis了,不行的话可以评论,我会看评论的
接下来搭建reids主从复制
注意事项:
配置文件
redis.cnf=======
bind 0.0.0.0 ::1
protected-mode no
daemonize no
然后根据配置文件启动好后查看一下本机信息,虽然没什么用,但是就是喜欢看一下
使用 docker inspect 命令查看你容器的IP
这是为了让两个redis之间绑定用的IP
docker inspect --format='{{.NetworkSettings.IPAddress}}'
使用 redis-cli 连接到redis服务器
redis-cli -h 192.168.18.4 -p 6379
> info replication # 查看本机信息
> slaveof 172.17.0.1 6379 # 虽然已经过时了,但还是向后兼容了这段命令
> replicaof 172.17.0.1 6379 # 5.x之后使用这段命令绑定主机
然后在主机 info 一下,可以看到和之前的不一样了,多了一个从机 slaves: 1
使用以上命令绑定主机后,在主机查看本机信息就可以看到有一个从机了,有问题请评论告诉我,欢迎来交流问题
哨兵也需要配置文件,依旧到/data/redis目录下载
cd /data/redis
wget http://download.redis.io/redis-stable/sentinel.conf
下载后,更改一下配置文件直接开撸好吧
# 守护进程,用docker的话就no吧,毕竟docker自带 -d 属性,不是的话就yes
daemonize no
# 修改日志文件存储的路径
logfile "/var/tmp/sentinel.log"
# 修改监控的主redis服务器
# ip填写自己的,别傻啦吧唧写个ip昂,docker的就是容器的IP
# 最后一个2表示,两台机器判定主被动下线后,就进行failover(故障转移)
sentinel monitor mymaster ip 6390 2
#这个事确认你reids是否还活着的阈值
sentinel down-after-milliseconds mymaster 5000
docker run --name sentinel1
-v /home/work/docker_data/redis/sentinel.conf:/usr/local/etc/redis/sentinel.conf
-d --net=host
redis redis-sentinel /usr/local/etc/redis/sentinel.conf
这个 --net=host 可以解释一下是一种网络模式,用了这个之后就不需要自己端口映射了,他会默认映射端口号,如果需要搭建集群的话,你可以改为 --net-bridge 这个是docker默认的网络模式
docker run --name=t-s4 -p 26380:26379 -v /data/redis/sentinel.conf:/usr/local/etc/redis/sentinel.cnf -d --net=bridge redis:latest redis-sentinel /usr/local/etc/redis/s
entinel.cnf
启动之后还是使用redis-cli连接它
连接好了之后呢,就可以查看本机信息,info sentinel 可以看到上面显示master1 表示检测到了绑定的主机
有人肯定有疑惑,为什么slaves是0呢,因为我忘记改配置文件了,绑定了我的从机
ip 175.17.0.2才是我的主机
以上都是我在同一台虚拟机搭建的,有什么问题欢迎评论,我肯定看,别不好意思