当前位置:   article > 正文

Docker安装Redis (全网最详细教程!!!)_docker安装部署redis

docker安装部署redis

一、Redis简介

二、简易版本启动(学习版)

1、一条命令直接搞定

2、docker ps 命令,查看本机docker运行的容器

3、docker logs 查看日志

4、测试连接

5、优缺点

三、生产版本启动

四、Docker 停止、删除、重启、启动容器


一、Redis简介

Redis,英文全称是Remote Dictionary Server(远程字典服务),是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库高速缓存消息队列代理。

二、简易版本启动(学习版)

1、一条命令直接搞定

无需配置文件,所有的参数全部跟在docker 命令后,命令如下:

docker run --restart=always -p 6379:6379 --name myredis -d redis:6.2.1  --requirepass ningzaichun

启动效果:

备注:在宿主机没有镜像的情况,会自动在 Docker hub 的公开仓库中进行寻找和下载。

2、docker ps 命令,查看本机docker运行的容器
  1. docker ps
  2. docker ps -a # 查看全部的容器,包括已经停止的
3、docker logs 查看日志
  1. docker logs [容器名 | 容器ID ]
  2. docker logs -f [容器名 | 容器ID ] #表示实时的跟踪日志输出
  3. docker logs --since 30m myredis # 此处 --since 30m 是查看此容器30分钟之内的日志情况。

4、测试连接

测试本地连接

  1. docker exec -it [容器名 | 容器ID] bash # 以交互的方式进入容器内部,具体的我这里没解释啦
  2. #最近准备了一篇文章专门来讲这个
  3. redis-cli
  4. set k1 v1
  5. auth zhangsan #自己设置的密码
  6. get k1

测试外部连接(可使用redis链接工具RDM)

备注

1、如果你是云环境的话,记得要去开放安全端口,否则外部是无法连接的。

2、虚拟机环境的话,记得要去开放防火墙,或者直接关闭防火墙

5、优缺点

优点:

1、适用于各位搭建测试环境,直接一条命令到位,不需要考虑这考虑那

2、适用于新手玩redis,只是想要学习Redis命令,完全可以应付前期的学习,给予自己一定的正向反馈,让自己坚持学下去。

缺点:

1、数据比较容易丢失,因为没有配置需要落入磁盘,所以全部都是在内存中,一旦关机或者容器挂掉,数据就没有啦。

2、没法修改配置文件,不好去自定义配置 

三、生产版本启动

2.1将制定的文件上传到服务器上,并映射进Redis中持久化

  1. ################################ SNAPSHOTTING ################################
  2. # 持久化保存策略配置
  3. # 在900s内,如果至少有1个key进行了修改,就进行持久化操作
  4. save 900 1
  5. # 在300s内,如果至少有10个key进行了修改,就进行持久化操作
  6. save 300 10
  7. # 在60s内,如果至少有10000个key进行了修改,就进行持久化操作
  8. save 60 10000
  9. # 配置如果持久化出错,Redis是否禁止写入命令 yes:禁止写入命令,no:允许写入命令(存在数据丢失风险)
  10. stop-writes-on-bgsave-error yes
  11. # 配置是否压缩rdb文件。[开启(yes)的话,会消耗一定的cpu资源]
  12. rdbcompression yes
  13. # 保存rdb文件的时候,进行错误的检查校验
  14. rdbchecksum yes
  15. # 默认持久化保存后的文件名
  16. dbfilename dump.rdb
  17. # rdb文件保存的目录
  18. dir ./
  19. # 设置访问、登录的密码,设置requirepass 您的密码
  20. requirepass 123456
  21. ############################## APPEND ONLY MODE ###############################
  22. # 是否开启aof持久化模式,默认值:no,不开启。redis的默认持久化策略是edb模式
  23. appendonly no
  24. # 持久化文件名称
  25. appendfilename "appendonly.aof"
  26. # 持久化策略设置
  27. # appendfsync always # 每次修改都进行持久化操作
  28. appendfsync everysec # 每秒执行一次持久化操作
  29. # appendfsync no # 不执行持久化操作,相当于未开启aof持久化策略
  30. # 设置为yes表示rewrite期间对新写操作不fsync,暂时存在内存中,等rewrite完成后再写入,默认为no,建议yes
  31. no-appendfsync-on-rewrite no
  32. # AOF自动重写配置,默认值为100
  33. auto-aof-rewrite-percentage 100
  34. auto-aof-rewrite-min-size 64mb
  35. # Redis在以AOF方式恢复数据时,对最后一条可能出问题的指令的处理方式,默认值yes
  36. aof-load-truncated yes
  37. # 当重写AOF文件时,Redis能够在AOF文件中使用RDB前导码,以便更快地重写和恢复,启用此选项时,重写的AOF文件由两个不同的节组成:[RDB file][AOF tail],当加载AOF文件时,Redis通过以 “REDIS” 字符串开头的AOF文件识别出此文件是由RDB和AOF组合而成的,Redis会先加载RDB部分,然后再加载AOF部分,默认值yes
  38. aof-use-rdb-preamble yes
  39. ################################### CLIENTS ####################################
  40. # 设置客户端最大连接数,该配置一般无需修改,使用默认值即可
  41. # maxclients 10000
  42. ############################## MEMORY MANAGEMENT ################################
  43. # redis配置的最大内存容量
  44. # maxmemory <bytes>
  45. # 到达内存容量限制之后的处理策略
  46. # maxmemory-policy noeviction
  1. docker run --restart=always \
  2. -p 6379:6379 \
  3. --name myredis \
  4. -v /home/dj/redis/redis.conf:/etc/redis/redis.conf \
  5. -v /home/dj/redis/data:/data \
  6. -d redis:7.0.12 redis-server /etc/redis/redis.conf

各参数的意义:

1)-restart=always 总是开机启动
2)-p 6379:6379 将6379端口挂载出去
3)–name 给这个容器取一个名字
4)-v 数据卷挂载 /home/dj/redis/redis.conf:/etc/redis/redis.conf

此处是将宿主机 /home/dj/redis/redis.conf 文件映射到 redis 容器下的 /etc/redis/redis.conf,此处你也可以理解为docker容器和宿主机共享这个文件。

5)-d redis:7.0.12 后台运行容器,不加-d就是直接在控制台输出,关闭窗口即停止容器。

6) redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的 redis.conf文件,最终找到的是挂载的目录 /etc/redis/redis.conf 也就是宿主机下共享的 /home/dj/redis/redis.conf。

补充:如果有权限相关的问题,可以给容器一个特权模式。加一个 --privileged

7)--log-opt max-size=100m --log-opt max-file=3

max-size:指定日志文件大小上限

max-file:指定日志文件个数

查看启动日志(是否正常启动)

  1. docker logs myredis # 后面跟容器名 or 容器ID 都可以
  2. docker logs --since 30m <容器名> # --since 30m 是查看此容器30分钟之内的日志情况。

四、Docker 停止、删除、重启、启动容器

docker stop [容器名|容器ID] #停止容器
docker start   [容器名|容器ID]  #启动停止的容器
docker restart  [容器名|容器ID]  # 将容器重新启动
docker kill [容器名|容器ID] #强行终止
docker rm [容器名|容器ID]   # 删除停止的容器

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/305511
推荐阅读
相关标签
  

闽ICP备14008679号