redis-cluster(非容器redis集群)
1、上传redis压缩包解压并移动到指定目录
rz redis:5.0.5.tar.gz
tar xf redis:5.0.5.tar.gz
mv redis-5.0.5 /data/
2、编译redis位置并执行配置脚本
cd /data/redis-5.0.5
make && make PREFIX=/usr/local/redis install
cd utils/
./install_server.sh
3、以下是自动程序编译选项:
Please select the redis port for this instance: [6379]
Please select the redis config file name [/etc/redis/6371.conf]
Please select the redis log file name [/var/log/redis_6371.log]
Please select the data directory for this instance [/var/lib/redis/6371]
Please select the redis executable path []
[6371]
/usr/local/redis/6371/6371.conf
/usr/local/redis/6371/log
/usr/local/redis/6371/
/usr/local/redis/bin/redis-server
[6372]
/usr/local/redis/6372/6372.conf
/usr/local/redis/6372/log
/usr/local/redis/6372/
/usr/local/redis/bin/redis-server
[6373]
/usr/local/redis/6373/6373.conf
/usr/local/redis/6373/log
/usr/local/redis/6373/
/usr/local/redis/bin/redis-server
[6374]
/usr/local/redis/6374/6374.conf
/usr/local/redis/6374/log
/usr/local/redis/6374/
/usr/local/redis/bin/redis-server
[6375]
/usr/local/redis/6375/6375.conf
/usr/local/redis/6375/log
/usr/local/redis/6375/
/usr/local/redis/bin/redis-server
[6376]
/usr/local/redis/6376/6376.conf
/usr/local/redis/6376/log
/usr/local/redis/6376/
/usr/local/redis/bin/redis-server
4、修改以下行数配置
[root@mycat-nfs redis]
[root@mycat-nfs redis]
[root@mycat-nfs redis]
[root@mycat-nfs redis]
[root@mycat-nfs redis]
[root@mycat-nfs redis]
70
89 protected-mode no
294 masterauth 123456
508 requirepass 123456
700 appendonly yes
833 cluster-enabled yes
841 cluster-config-file nodes-6371.conf
847 cluster-node-timeout 15000
5、编写redis-cluster集群重启脚本
/etc/init.d/redis_6371 restart
/etc/init.d/redis_6372 restart
/etc/init.d/redis_6373 restart
/etc/init.d/redis_6374 restart
/etc/init.d/redis_6375 restart
/etc/init.d/redis_6376 restart
6、构建集群
生产环境(3台)
./redis-cli -a 123456 --cluster create 1 172.17.0.8:6371 172.17.0.3:6373 172.17.0.13:6375 172.17.0.8:6372 172.17.0.3:6374 172.17.0.13:6376
测试环境(1台)
./redis-cli -a 123456 --cluster create 172.17.0.9:6371 172.17.0.9:6372 172.17.0.9:6373 172.17.0.9:6374 172.17.0.9:6375 172.17.0.9:6376
7、上传服务jar包
rz RedisDemo-0.0.1-SNAPSHOT.jar
mv RedisDemo-0.0.1-SNAPSHOT.jar /data/java
8、编写Dockerfile
FROM java:8
ADD RedisDemo-0.0.1-SNAPSHOT.jar web.jar
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
EXPOSE 8080
ENTRYPOINT ["java","-jar","web.jar"]
9、启动服务容器
docker build -t java .
docker run -id -p 8080:8080 --name java java
10、启动负载均衡nginx并映射服务所需端口(记得防火墙记得放通对应端口)
docker run -id -p 8080:8080 --name java-nginx nginx:1.14.2
upstream java {
server 172.17.0.9:8080 max_fails=0 fail_timeout=10s;
}
server {
listen 8080;
server_name 152.152.152.152;
location / {
proxy_connect_timeout 75;
proxy_read_timeout 300;
proxy_send_timeout 300;
proxy_buffer_size 64k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
proxy_pass http://java;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
11、编写docker的nginx复制简易脚本
docker cp nginx.conf java-nginx:/etc/nginx/nginx.conf
docker exec -it java-nginx /bin/bash -c "nginx -t"
sleep 2
docker exec -it java-nginx /bin/bash -c "nginx -s reload"
12、执行命令行sh nx.sh
刷新nginx配置

鸣谢公司开发小伙伴(曹木木)被我拖下来打新的jar包。加班30分钟。卷他没商量^^。今天还会再验证一下docker部署redis-cluster用于快速构建测试环境专用的构建思路。