工作中需要安装个开发用的redis,现在将安装流程记录如下:
1.centos7中查看当前系统是否已经安装redis
ps -ef | grep redis
#使用以上命令查出线程边好
ls -l /proc/线程编号/cwd
#查出安装路径,我这里要使用docker安装所以要卸载这里直接杀掉
kill -9 线程编号
2.进入dockerhub官网,找到5.0.7版本的镜像,下载
dockerhub官网
docker pull redis:5.0.7
3.创建挂载目录挂载配置文件和数据存储
mkdir -p /data/docker/redis/conf
mkdir -p /data/docker/redis/data
4.自己去redis官网下载个redis包,去里面弄份配置文件出来
redis官网
5.docker运行
docker run -d --privileged=true -p 6379:6379 --restart always -v /data/docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /data/docker/redis/data:/data --name myredis redis:5.0.7 redis-server /etc/redis/redis.conf --appendonly yes
docker涉及命令解释
-d -> 以守护进程的方式启动容器
-p 6379:6379 -> 绑定宿主机端口
--name myredis -> 指定容器名称
--restart always -> 开机启动
--privileged=true -> 提升容器内权限
-v /root/docker/redis/conf:/etc/redis/redis.conf -> 映射配置文件
-v /root/docker/redis/data:/data -> 映射数据目录
--appendonly yes -> 开启数据持久化
6.修改redis.conf配置文件,不然外面访问不了,具体修改以下几点:
#改为no,默认yes
protected-mode no
#如果需要密码就把下面放开,并设置密码,foobared为默认密码
requirepass foobared
#把bind都注释掉
bind 127.0.0.1
7.修改完以上重启docker,重新连接即可
8.在启动完后,我们将改redis作为主redis的备份,在slave服务器,redis.conf中如下配置
#注意在配置参数时,不要把注释用#加在配置参数后,不然会报错
replicaof 127.0.0.1 6379
masterauth master的密码,有就配
9.在正常启动slaveredis时,发现跟master数据不一致,有缺少,经检查应该是,slave的客户端缓存默认设置过小,查看slave日志报错如下
#默认配置如下
client-output-buffer-limit normal 0 0 0
1196 client-output-buffer-limit replica 256mb 64mb 60
1197 client-output-buffer-limit pubsub 32mb 8mb 60
#参数全设置为0为不限制
client-output-buffer-limit normal 0 0 0
1196 client-output-buffer-limit replica 0 0 0
1197 client-output-buffer-limit pubsub 0 0 0
10.设置好,重启服务即可,docker直接重启容器,centos安装则重启时需指定配置文件启动
11.从redis断开与master的主从关系,变为独立的redis
SLAVEOF NO ONE
参考博客:SLAVEOF host port