Redis在docker中保存状态指南

319 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第5天,点击查看活动详情

Docker 容器是一种打包格式,它以标准格式打包应用程序的所有代码和依赖项,使其能够在计算环境中快速可靠地运行。Docker 容器是一种流行的轻量级、独立的可执行容器,它包含运行应用程序所需的一切,包括库、系统工具、代码和运行时。Docker 也是一个软件平台,允许开发人员快速构建、测试和部署容器化应用程序。

Redis是高性能读写,不支持命令审计,如果命令支持审计,性能会受到很大的影响,因此命令打印不出来。。阿里云 Redis 服务,通过内核改造提供全操作日志(modify)及高危命令的审计功能,性能开销通常低于 5%,为客户提供 7x24 基本无业务无损的审计服务,

redis log默认在conf中没有配置,是直接输出到/dev/null 中,如果需要输出到指定目录需要在 conf中增加logfile 字段

安装docker:

www.runoob.com/docker/ubun…

下载docker镜像:

docker pull redis

配置:

在宿主机准备映射conf文件

mkdir -p ./redis/conf
vi ./redis/conf/redis.conf 

添加如下配置:

#daemonize yes
dir /data
logfile /data/redis.log
protected-mode no
#bind 127.0.0.1
appendonly yes
loglevel verbose

Redis默认的设置为notice,开发测试阶段可以用debug(日志内容较多一般不建议使用),生产模式一般选用notice,但任何级别都不能记录操作

  1. debug:会打印出很多信息,适用于开发和测试阶段
  2. verbose(冗长的):包含很多不太有用的信息,但比debug要清爽一些
  3. notice:适用于生产模式
  4. warning : 警告信息

启动实例:

docker run -itd --net=host -p 6379:6379  -v ./redis/redis.conf:/usr/local/etc/redis/redis.conf -v ./redis/data/:/data --name  redis_test -e "TZ=Asia/Shanghai" redis redis-server /usr/local/etc/redis/redis.conf

检查:

docker ps

测试:

进入docker容器或者外部直接连接

docker exec -it redis redis-cli
set aa b
get aa