赞
踩
2、docker ps 命令,查看本机docker运行的容器
Redis,英文全称是Remote Dictionary Server(远程字典服务),是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。
无需配置文件,所有的参数全部跟在docker 命令后,命令如下:
docker run --restart=always -p 6379:6379 --name myredis -d redis:6.2.1 --requirepass ningzaichun
启动效果:
备注:在宿主机没有镜像的情况,会自动在 Docker hub 的公开仓库中进行寻找和下载。
- docker ps
- docker ps -a # 查看全部的容器,包括已经停止的
- docker logs [容器名 | 容器ID ]
- docker logs -f [容器名 | 容器ID ] #表示实时的跟踪日志输出
- docker logs --since 30m myredis # 此处 --since 30m 是查看此容器30分钟之内的日志情况。
测试本地连接
- docker exec -it [容器名 | 容器ID] bash # 以交互的方式进入容器内部,具体的我这里没解释啦
- #最近准备了一篇文章专门来讲这个
-
- redis-cli
- set k1 v1
- auth zhangsan #自己设置的密码
- get k1
测试外部连接(可使用redis链接工具RDM)
备注:
1、如果你是云环境的话,记得要去开放安全端口,否则外部是无法连接的。
2、虚拟机环境的话,记得要去开放防火墙,或者直接关闭防火墙。
优点:
1、适用于各位搭建测试环境,直接一条命令到位,不需要考虑这考虑那
2、适用于新手玩redis,只是想要学习Redis命令,完全可以应付前期的学习,给予自己一定的正向反馈,让自己坚持学下去。
缺点:
1、数据比较容易丢失,因为没有配置需要落入磁盘,所以全部都是在内存中,一旦关机或者容器挂掉,数据就没有啦。
2、没法修改配置文件,不好去自定义配置
2.1将制定的文件上传到服务器上,并映射进Redis中持久化
- ################################ SNAPSHOTTING ################################
-
- # 持久化保存策略配置
- # 在900s内,如果至少有1个key进行了修改,就进行持久化操作
- save 900 1
- # 在300s内,如果至少有10个key进行了修改,就进行持久化操作
- save 300 10
- # 在60s内,如果至少有10000个key进行了修改,就进行持久化操作
- save 60 10000
- # 配置如果持久化出错,Redis是否禁止写入命令 yes:禁止写入命令,no:允许写入命令(存在数据丢失风险)
- stop-writes-on-bgsave-error yes
- # 配置是否压缩rdb文件。[开启(yes)的话,会消耗一定的cpu资源]
- rdbcompression yes
- # 保存rdb文件的时候,进行错误的检查校验
- rdbchecksum yes
- # 默认持久化保存后的文件名
- dbfilename dump.rdb
- # rdb文件保存的目录
- dir ./
-
- # 设置访问、登录的密码,设置requirepass 您的密码
- requirepass 123456
-
-
- ############################## APPEND ONLY MODE ###############################
-
-
- # 是否开启aof持久化模式,默认值:no,不开启。redis的默认持久化策略是edb模式
- appendonly no
-
- # 持久化文件名称
- appendfilename "appendonly.aof"
-
- # 持久化策略设置
- # appendfsync always # 每次修改都进行持久化操作
- appendfsync everysec # 每秒执行一次持久化操作
- # appendfsync no # 不执行持久化操作,相当于未开启aof持久化策略
-
- # 设置为yes表示rewrite期间对新写操作不fsync,暂时存在内存中,等rewrite完成后再写入,默认为no,建议yes
- no-appendfsync-on-rewrite no
-
- # AOF自动重写配置,默认值为100
- auto-aof-rewrite-percentage 100
- auto-aof-rewrite-min-size 64mb
-
- # Redis在以AOF方式恢复数据时,对最后一条可能出问题的指令的处理方式,默认值yes
- aof-load-truncated yes
-
- # 当重写AOF文件时,Redis能够在AOF文件中使用RDB前导码,以便更快地重写和恢复,启用此选项时,重写的AOF文件由两个不同的节组成:[RDB file][AOF tail],当加载AOF文件时,Redis通过以 “REDIS” 字符串开头的AOF文件识别出此文件是由RDB和AOF组合而成的,Redis会先加载RDB部分,然后再加载AOF部分,默认值yes
- aof-use-rdb-preamble yes
-
-
-
- ################################### CLIENTS ####################################
-
- # 设置客户端最大连接数,该配置一般无需修改,使用默认值即可
- # maxclients 10000
-
- ############################## MEMORY MANAGEMENT ################################
-
- # redis配置的最大内存容量
- # maxmemory <bytes>
-
- # 到达内存容量限制之后的处理策略
- # maxmemory-policy noeviction
- docker run --restart=always \
- -p 6379:6379 \
- --name myredis \
- -v /home/dj/redis/redis.conf:/etc/redis/redis.conf \
- -v /home/dj/redis/data:/data \
- -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:指定日志文件个数
查看启动日志(是否正常启动)
- docker logs myredis # 后面跟容器名 or 容器ID 都可以
- docker logs --since 30m <容器名> # --since 30m 是查看此容器30分钟之内的日志情况。
docker stop [容器名|容器ID] #停止容器
docker start [容器名|容器ID] #启动停止的容器
docker restart [容器名|容器ID] # 将容器重新启动
docker kill [容器名|容器ID] #强行终止
docker rm [容器名|容器ID] # 删除停止的容器
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。