centos6使用docker部署redis主从数据库操作示例
时间:2020-02-07来源:系统城作者:电脑系统城
本文实例讲述了centos6使用docker部署redis主从数据库操作。分享给大家供大家参考,具体如下:
目录结构:
/redis
/Dockerfile
/Readme
/redis-3.2.8.tar.gz
/start.sh
Dockerfile:
- FROM centos
- MAINTAINER qiongtao.li hnatao@126.com
- ADD ./redis-3.2.8.tar.gz /opt
- ADD ./start.sh /opt/start_redis.sh
- RUN echo "Asia/shanghai" > /etc/timezone \
- && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
- && yum -y install gcc make \
- && ln -s /opt/redis-3.2.8 /opt/redis \
- && cd /opt/redis && make && make install
- EXPOSE 6379
- ENTRYPOINT ["sh", "/opt/start_redis.sh"]
-
start.sh
- role=$1
- port=6379
- password=Abc123
- redis_conf=/opt/redis/redis.conf
- dir=/data/redis
- logfile=/data/redis/redis.log
- mkdir -p $dir
- sed -i "s|bind 127.0.0.1|bind 0.0.0.0|g" $redis_conf
- sed -i "s|# requirepass foobared|requirepass ${password}|g" $redis_conf
- sed -i "s|dir ./|dir ${dir}|g" $redis_conf
- sed -i "s|logfile \"\"|logfile ${logfile}|g" $redis_conf
- if [ "$role" == "slave" ]; then
- echo "slave"
- sed -i "s|# slaveof <masterip> <masterport>|slaveof redis-master ${port}|g" $redis_conf
- sed -i "s|# masterauth <master-password>|masterauth ${password}|g" $redis_conf
- else
- echo "master"
- fi
- redis-server $redis_conf
-
Readme
- docker rm -f redis-master redis-slave-1 redis-slave-2
- docker rmi -f redis
- docker build -t redis .
- docker run -d --name redis-master redis
- docker run -d --name redis-slave-1 --link redis-master:redis-master redis slave
- docker run -d --name redis-slave-2 --link redis-master:redis-master redis slave
- docker ps -a
- docker exec redis-master redis-cli -a Abc123 set name hnatao
- docker exec redis-master redis-cli -a Abc123 get name
- docker exec redis-slave-1 redis-cli -a Abc123 get name
- docker exec redis-slave-2 redis-cli -a Abc123 get name
- docker exec redis-master grep -E "bind|dir|require|logfile|slaveof|masterauth"/opt/redis/redis.conf
- docker exec redis-slave-1 grep -E "bind|dir|require|logfile|slaveof|masterauth"/opt/redis/redis.conf
- docker exec redis-slave-2 grep -E "bind|dir|require|logfile|slaveof|masterauth"/opt/redis/redis.conf
- docker exec redis-master redis-cli -a Abc123 info
- docker exec redis-slave-1 redis-cli -a Abc123 info
- docker exec redis-slave-2 redis-cli -a Abc123 info
-
测试安装部署
- cat Readme|while read line; do $line; done
-
希望本文所述对大家Docker容器使用有所帮助。
相关信息
-
redis实现session共享的方法
引言大厂很多项目都是部署到多台服务器上,这些服务器在各个地区都存在,当我们访问服务时虽然执行的是同一个服务,但是可能是不同服务器运行的;在我学习项目时遇到这样一个登录情...
2023-11-01
-
简单聊一聊redis过期时间的问题
1.多次修改一个redis的String过期键,如何保证他仍然能保留第一次设置时的删除时间
2.修改hash、set、Zset、list的值,会使过期时间重置吗?...
2023-11-01