一、 docker 拉去最新版本的redis

  `docker pull redis:6.0.6` #后面可以带上tag号, 默认拉取最新版本

二、 docker安装redis

执行命令:

mkdir -p /usr/local/docker/redis/conf
chmod -R 777 /usr/local/docker/redis
cd /usr/local/docker/redis/conf
#wget https://github.com/redis/redis/blob/6.0.6/redis.conf #下载redis的配置文件 (注意可跳此步,直接下一步,我已经写好配置了,或者直接打开连接找到对应版本的配置文件下载到服务器上,再按我下面的配置文件修改一下)
vim redis.conf #更改配置文件, 让宿主机可以访问redis-server #保存并退出

编辑配置文件

/usr/local/docker/redis/conf/redis.conf

redis.conf 文件

#开启保护
protected-mode yes
# 注释下面一行配置 开启远程连接
#bind 127.0.0.1
#自定义密码
requirepass 123456
port 6379
timeout 0
# 900s内至少一次写操作则执行bgsave进行RDB持久化
save 900 1
save 300 10
save 60 10000
# rdbcompression ;默认值是yes。对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采用LZF算法进行压缩。如果你不想消耗CPU来进行压缩的话,可以设置为关闭此功能,但是存储在磁盘上的快照会比较大。
rdbcompression yes
# dbfilename :设置快照的文件名,默认是 dump.rdb
dbfilename dump.rdb
# dir:设置快照文件的存放路径,这个配置项一定是个目录,而不能是文件名。使用上面的 dbfilename 作为保存的文件名。
dir /data
# 默认redis使用的是rdb方式持久化,这种方式在许多应用中已经足够用了。但是redis如果中途宕机,会导致可能有几分钟的数据丢失,根据save来策略进行持久化,Append Only File是另一种持久化方式, 可以提供更好的持久化特性。Redis会把每次写入的数据在接收后都写入appendonly.aof文件,每次启动时Redis都会先把这个文件的数据读入内存里,先忽略RDB文件。默认值为no。
appendonly yes
# appendfilename :aof文件名,默认是"appendonly.aof"
# appendfsync:aof持久化策略的配置;no表示不执行fsync,由操作系统保证数据同步到磁盘,速度最快;always表示每次写入都执行fsync,以保证数据同步到磁盘;everysec表示每秒执行一次fsync,可能会导致丢失这1s数据
appendfsync everysec

保存退出

参数说明

1.修改保护模式protected-mode yes 默认为yes 可以跳过这一步

​ Redis protected-mode属性解读

​ 设置外部网络连接redis服务,设置说明如下:

​ a.关闭protected-mode模式,此时外部网络可以直接访问

​ b.开启protected-mode保护模式,需配置bind ip 和设置访问密码 redis3.2版本后新增protected-mode配置,默认是yes,即开启。

2.把bind 127.0.0.1 注释掉 #bind 127.0.0.1, 这样所有的ip都可以访问了

3.设置密码(根据自己的需要)

设置永久密码的方法

找到requirepass foobared 把foobared改为自己的登陆密码 这里我设置为123456

requirepass 12345678

设置临时密码的方法

在连接上redis后,config set设置临时密码,redis重启后,设置的密码就失效了

127.0.0.1:6379> config set requirepass "123456" # 设置密码为12345678

OK

127.0.0.1:6379> config get requirepass # 获取密码的值

  1. "requirepass"
  2. "12345678"

4.appendonly yes #开启AOF模式

5.save配置解读:

1) “save 900 1”表示如果900秒内至少1个key发生变化(新增、修改和删除),则重写rdb文件;

2) “save 300 10”表示如果每300秒内至少10个key发生变化(新增、修改和删除),则重写rdb文件;

3) “save 60 3600”表示如果每60秒内至少10000个key发生变化(新增、修改和删除),则重写rdb文件。

作用:

控制什么时候生成rdb文件(快照,也可叫Checkpoint,即检查点)。

进程启动的时候,会将每一行save读进到类型为struct saveparam的数组中。这个没有排序,依在redis.conf中的先后顺序。在检查时,只要满足就不会再检查下一条规则。

配置策略:

如果同时开启了aof,则可考虑将save的参数调大一点,以减少写rdb带来的压力。实际上如果开启了aof,redis在启动时只会读取aof文件,而不会读取rdb文

更多解读参考文档:

https://www.cnblogs.com/wiseleer/p/16905980.html

三、编写 docker-compose.yaml文件

[root@iZ2ze505h9bgsbp83ct28pZ redis]# cd /usr/local/docker/redis
[root@iZ2ze505h9bgsbp83ct28pZ redis]# vim docker-compose.yml

写入下面的内容

version: '3.8'
services:
myredis:
container_name: myredis
image: redis:6.0.5 #redis:6.2.6
restart: always
ports:
- 6379:6379
privileged: true
environment:
# 时区上海
TZ: Asia/Shanghai
command: redis-server /etc/redis/redis.conf --appendonly yes
volumes:
- $PWD/data:/data
- $PWD/conf/redis.conf:/etc/redis/redis.conf
networks:
- myweb networks: myweb:
driver: bridge

说明:

/etc/redis/redis.conf为容器里的目录

$PWD/conf/redis.conf 为宿主机里的目录

启动前的目录结构

root@haima-PC:/usr/local/docker/redis# tree
.
├── conf
│   └── redis.conf
└── docker-compose.yml

四、启动容器

[root@iZ2ze505h9bgsbp83ct28pZ redis]# docker-compose up -d # 后台启动
[root@iZ2ze505h9bgsbp83ct28pZ redis]# docker ps -a #查看启动的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f0970e970457 redis "docker-entrypoint.s…" 4 minutes ago Up 4 minutes 0.0.0.0:6379->6379/tcp myredis
[root@iZ2ze505h9bgsbp83ct28pZ redis]# docker exec -it myredis redis-cli # 启动redis客户连接redis服务
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456 # 输入密码登陆
OK
127.0.0.1:6379> set name test
OK
127.0.0.1:6379> get name
"test"

到这里就ok了,

启动后的目录结构

root@haima-PC:/usr/local/docker/redis# tree
.
├── conf
│ └── redis.conf
├── data
│ ├── appendonly.aof
│ └── dump.rdb
└── docker-compose.yml

五、限制内在和CPU

如果想要限制内在和CPU

1.2加入deploy的resource limit

version: '3.8'
services:
myredis:
container_name: myredis
image: redis:6.0.6 #redis:6.0.6
restart: always
ports:
- 6379:6379
privileged: true
environment:
# 时区上海
TZ: Asia/Shanghai
command: redis-server /etc/redis/redis.conf --appendonly yes
volumes:
- $PWD/data:/data
- $PWD/conf/redis.conf:/etc/redis/redis.conf
deploy:
resources:
limits:
cpus: '0.50'
memory: 500M
networks:
- myweb networks: myweb:
driver: bridge

2.启动container时加入--compatibility参数

docker-compose --compatibility up -d

2.1启动时未加入-compatibility的警告

WARNING: Some services(redis)use the 'deploy' key,which will be ignored.Compose does not support 'deploy' configuration - use docker stack deploy to deploy to a swarm.

查看redis的CPU和内存使用状态

[root@iZ2ze505h9bgsbp83ct28pZ redis]# docker stats myredis
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT   MEM %               NET I/O             BLOCK I/O           PIDS
2cb96f4cfcf9 myredis 0.10% 9.59MiB / 500MiB 1.92% 2.69kB / 0B 0B / 0B 5

六、启用redis-cli

新开一个命令行窗口

# 客户端连接redis 无密码方式
[root@middle ~]# docker exec -it myredis redis-cli # 客户端连接redis 123456是密码
[root@middle ~]# docker exec -it myredis redis-cli -a 123456 # 或者 使用auth命令输入密码
[root@middle ~]# docker exec -it myredis redis-cli
127.0.0.1:6379> auth 123456
OK 127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> set name lisi
OK
127.0.0.1:6379> get name
"lisi"

七、查看容器常用的命令

docker ps -a  # 查看所有容器
docker ps # 查看正在运行的容器
docker restart container-id # 重启某个容器id或者容器名字
docker stop container-id # 关闭指定容器
docker rm myredis #移除指定容器
docker start 容器id //启动容器记录里的容器
docker rm container-id # 删除关闭的容器
docker rm -f container-id # 关闭并删除关闭的容器
docker rm $(docker ps -a -q) #移除掉所有容器

docker-compose 安装redis的更多相关文章

  1. Docker Compose 部署 Redis 及原理讲解 | 懒人屋

    原文:Docker Compose 部署 Redis 及原理讲解 | 懒人屋 Docker Compose 部署 Redis 及原理讲解  4.4k  字    16  分钟    2019-10-1 ...

  2. Docker Compose 搭建 Redis Cluster 集群环境

    在前文<Docker 搭建 Redis Cluster 集群环境>中我已经教过大家如何搭建了,本文使用 Docker Compose 再带大家搭建一遍,其目的主要是为了让大家感受 Dock ...

  3. 在CentOS上通过Docker方式安装Redis

    在CentOS上通过Docker方式安装Redis 首先保证已经安装docker. 拖拽redis镜像 docker pull redis 启动redis docker run -p 6379:637 ...

  4. 手把手教你 Docker Compose安装DOClever

    一.什么是Docker Compose以及Docker Compose的安装和使用 查看我的另外一篇博客:Docker Compose的安装和使用 二.DOClever是什么 DOClever是一个可 ...

  5. Docker Compose安装以及入门

    Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速在集群中部署分布式应用. Compose 简介 Compose 项目是 Docker 官方的开源 ...

  6. Docker Compose搭建Redis一主二从三哨兵高可用集群

    一.Docker Compose介绍 https://docs.docker.com/compose/ Docker官方的网站是这样介绍Docker Compose的: Compose是用于定义和运行 ...

  7. docker和docker compose安装使用、入门进阶案例

    一.前言 现在可谓是容器化的时代,云原生的袭来,导致go的崛起,作为一名java开发,现在慌得一批.作为知识储备,小编也是一直学关于docker的东西,还有一些持续继承jenkins. 提到docke ...

  8. Docker Centos安装Redis以及问题处理

    之前一篇文章 Redis安装及主从配置 介绍了redis的安装配置,另一篇文件介绍了 Docker Centos安装Openssh .今天将两篇文件结合一下——在Docker Centos环境下搭建r ...

  9. docker 中安装 redis

    使用以下命令在Docker Hub搜索Redis镜像docker search redis 使用以下命令拉取镜像,Redis的镜像docker pull redis:latest 使用以下命令查看,本 ...

  10. Docker Compose 安装 on centos7

    本文演示如何在CentOS7上安装Docker Compose. 1 在线安装 1.1 下载安装包 $ curl -L https://github.com/docker/compose/releas ...

随机推荐

  1. KingbaseES V8R6备份恢复案例之---sys_waldump解析wal日志PITR恢复

    ​ 案例说明: 复现用户删除表(drop table)误操作,通过wal日志解析找到误操作时间点,执行基于时间点的恢复(PITR). 适用版本: KingbaseES V8R6 一.模拟业务现场操作 ...

  2. SQL日期操作函数(CONCAT、DATE_FORMAT、LAST_DAY)

    获取某月底日期:SELECT LAST_DAY('2021-07-01') AS month_end_date; 拼接年月格式: CONCAT(DATE_FORMAT(hp.planned_payme ...

  3. 高德地图和echarts结合实现地图下钻(一)

    疫情大屏优化-ECharts 地图下钻功能实现 https://www.sohu.com/a/373917631_100123073   全国:100000                北京:110 ...

  4. 开源车牌识别系统HyperLPR踩坑

    项目地址 https://github.com/zeusees/HyperLPR python配置参考文章 https://www.jianshu.com/p/7ab673abeaae 安装Anaco ...

  5. 17 JavaScript 中的call和apply

    17 JavaScript 中的call和apply 对于咱们逆向工程师而言. 并不需要深入的理解call和apply的本质作用. 只需要知道这玩意执行起来的逻辑顺序是什么即可 在运行时. 正常的js ...

  6. #博弈论,贪心#AT2376 [AGC014D] Black and White Tree

    题目传送门 分析 考虑到先手放一个白点后手必将在相邻位置放一个黑点, 如果没有合适的位置放黑点先手必胜,也就是问是否存在完美匹配, 直接从叶子节点到根贪心匹配即可 代码 #include <cs ...

  7. #Tarjan,树的直径#CF1000E We Need More Bosses

    题目 给定一个\(n\)个点\(m\)条边的无向图,找到两个点\(s,t\),使得\(s\)到\(t\)必须经过的边最多 分析 桥就是必须经过的边,考虑给无向图缩点, 按照桥建一棵树,那么就转换成了求 ...

  8. #Multi-SG#HDU 5795 A Simple Nim

    题目 有\(n\)堆石子,每次可以从一堆中取出若干个或是将一堆分成三堆非空的石子, 取完最后一颗石子获胜,问先手是否必胜 分析 它的后继还包含了分成三堆非空石子的SG函数,找规律可以发现 \[SG[x ...

  9. Windows wsl2安装Docker

    wsl2的Ubuntu安装好后,就可以安装Docker了. 由于众所周知的原因,国内访问国外的某些网站会访问不了或者访问极慢,Docker的安装网站就在其中. 所以推荐使用阿里的镜像进行安装. 1.使 ...

  10. cv.calibrateCamera

    相机造成的失真类型 如何找到相机的内在和外在特性 如何基于这些特性来消除图像失真 基础 一些针孔相机会对图像造成严重失真.两种主要的畸变是径向畸变和切向畸变. 径向变形会使直线看起来是弯曲的.点离图像 ...