docker安装redis

redis.conf 下载页:https://redis.io/topics/config

 wget http://download.redis.io/redis-stable/redis.conf
 wget http://download.redis.io/redis-stable/sentinel.conf

redis-cli -h 127.0.0.1 -p 6378 -a 123

 

 

docker run -p 6378:6378  -v $PWD/data/redis.conf:/etc/redis/redis.conf  -v $PWD/data:/data

-d --name myredis redis 

redis-server /etc/redis/redis.conf

--appendonly yes

进入已经启动的redis:

docker ps

docker exec -it df1 redis-cli -p 6378 -a 123 //端口6378,redis.conf中,设置的key为123/daemonize必须为NO

redis.conf配置简单说明:

 

appendonly yes//启用日志追加持久化方式

#appendfsync always //每次收到写命令就立即强制写入磁盘,最慢的,但是保证完全

appendfsync everysec //每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐

#appendfsync no //完全依赖操作系统,性能最好,持久化没保证

 

如需远程连接redis,需配置redis端口6379在linux防火墙中开发

/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT

/etc/rc.d/init.d/iptables save

修改安装目录下的redis.conf文件

vim redis.conf

修改以下配置:

#bind 127.0.0.1 # 将这行代码注释,监听所有的ip地址,外网可以访问
protected-mode no # 把yes改成no,允许外网访问
daemonize yes # 把no改成yes,后台运行,docker配置redis.conf中,必须no

 

 

Redis 虚拟内存相关配置
vm-enabled yes
#开启虚拟内存功能
vm- -swap- file / tmp/redis. swap
#交换出来value保存的文件路径/ tmp/redis. swap
vm- max- -memory 268435456
#redis使用的最大内存上限(256MB), 超过上限后
redis开始交换value到磁盘swap文件中。建议设置为系统空闲内存的60%-80%
VM- page-size 32
#每个redis页的大小32个字节
vm- pages 134217728
#最多在文件中使用多少个页,交换文件的大小=
(vm- page-size * vm-pages) 4GB
vm- max- threads 8 ,
#用于执行value对象换入换出的工作线程数量。0
表示不使用工作线程(详情后面介绍)
redis的虚拟内存在设计.上为了保证key的查询速度,只会将value交换到swap文件
中。如果是由于太多key很小的value造成的内存问题,那么redis的虚拟内存并不能解
决问题。和操作系统一样redis也是按页来交换对象的。redis规定同一个页只能保存一个
对象。但是一个对象可以保存在多个页中。在redis使用的内存没超过vm-max-memory之前
是不会交换任何value的。当超过最大内存限制后,redis会选择把较老的对象交换到swap

 docker redis集群:

一、master-slave模式//

1.master

 docker run -it --restart=always //docker 启动,容器也自动启动

  --name redis-slave -d -p 6300:6300 

  -v $PWD/opt/redis/redis_config/redis.conf:/etc/redis/redis.conf 

  -v $PWD/opt/redis/redisData:/data  redis  

 

  redis-server /etc/redis/redis.conf 

                --requirepass 123 --appendonly yes --protected-mode no 

                --port 6300

docker exec -it redis-slave bash

 redis-cli -p 6300 -a 123

 

  config set masterauth 123

 

slaveof <master-ip> <master-port>
    config set masterauth redispassword

ip:docker inspect container_id,
如果这些还不行,关闭防火墙,systemctl stop firewalld,
还不行,进入容器主redis修改配置文件,bindip 127.0.0.1注释掉

 

 

posted @ 2018-10-17 09:40  江山一族  阅读(247)  评论(0编辑  收藏  举报