使用docker安装redis -- 转帖https://blog.csdn.net/weixin_38958597/article/details/106048983

Docker安装redis,并配置持久化

下载镜像

1.首先下载最新版本的redis镜像:docker pull redis

2.doker images可以查看下载好的镜像

 
到这里开始有两种启动方式:
一种是以效率为先的快速启动方式
另一种则是设置配置文件的方式,配置文件可以让我们设置redis持久化(重启redis数据也不会丢失或丢失小部分)。

快速启动(第一种方法)

docker run -itd --name redis -p 6379:6379 redis
  • 1

一句即可启动redis,但是没有设置配置文件,只是快速启动使用而已
下面是用配置的方式启动

配置(第二种方法)

首先我们创建好存放redis配置文件和数据的目录结构:/docker/redis/{conf,data}
然后配置文件可以从官网拷贝下来,也可以用这个指令下载(修改最后的存放目录,粘贴到linux即可):

wget https://raw.githubusercontent.com/antirez/redis/4.0/redis.conf -O conf/redis.conf
  • 1

下载完毕,可以打开修改以下配置

  • bind 127.0.0.1
    注释掉这部分,这是限制redis只能本地访问
  • protected-mode no
    默认是yes,开启保护模式,限制为本地访问
  • requirepass 123456
    配置redis连接密码,默认是注释的
  • daemonize no
    默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程(可选),改为yes会使配置文件方式启动redis失败,windows貌似默认不支持这个配置项
  • dir ./
    更改本地redis数据库存放文件夹(可选)
  • appendonly yes
    redis持久化(开启了这个,redis就不会每次重启时自动清空了)

启动(第二种方法)

复制下面这行到linux执行即可

docker run -itd -p 6379:6379 --name redis -v /docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data redis redis-server /etc/redis/redis.conf 
  • 1

记得更改挂载文件的位置,还可以通过在run命令后面加上appendonly yes 开启redis持久化(如果没写配置文件的话)。

测试

输入以下指令查看容器日志是否启动成功

docker logs --tail 200 -f redis
  • 1

或输入以下指令进入容器

docker exec -it redis /bin/bash
  • 1

输入redis-cli连接redis,如果是连接其他服务器的redis,则需要加参数

redis-cli -h xx.xxx.xx.xxx -p 6379
  • 1

随便set,get一下试试,有结果则说明没问题。

在线设置密码

连接了redis客户端后,还能通过命令设置密码,这种方式设置密码不需要重启redis

config set requirepass 123456
  • 1

获取密码

config get requirepass
  • 1

设置了密码后登陆不输入密码也能登录成功,就是没有任何操作权限(读写)
带密码登录:

redis-cli -h xx.xxx.xx.xxx -p 6379 -a 123456
  • 1

或不带密码登录,但是登陆完了后再验证密码

redis-cli
auth 123456
  • 1
  • 2

在这里插入图片描述
 
 
 
 

参考 docker安装redis并以配置文件方式启动
https://blog.csdn.net/weixin_42456466/article/details/87270959
Redis学习总结(5)之redis.conf配置文件说明
https://blog.csdn.net/jokeMqc/article/details/87933573
Redis详解(二)------ redis的配置文件介绍
https://www.cnblogs.com/ysocean/p/9074787.html

原文地址:https://www.cnblogs.com/xiaofeidu/p/13974061.html