docker安装redis以及持久化

为了避免当虚拟机关机后redis数据丢失的情况,redis需要持久化。所以要挂载数据卷

  1. 创建数据和配置存放的目录
[root@192 data]# pwd
/root/data
[root@192 data]# mkdir -p /root/data/redis/conf && chmod 777 /root/data/redis/conf
[root@192 data]# mkdir -p /root/data/redis/data && chmod 777 /root/data/redis/data
  1. 下载配置文件
[root@192 conf]# cd /root/data/redis/conf
[root@192 conf]# wget http://download.redis.io/redis-stable/redis.conf
--2024-06-04 03:49:40--  http://download.redis.io/redis-stable/redis.conf
正在解析主机 download.redis.io (download.redis.io)... 45.60.125.1
正在连接 download.redis.io (download.redis.io)|45.60.125.1|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:107512 (105K) [application/octet-stream]
正在保存至: “redis.conf”100%[======================================================================================>] 107,512     62.0KB/s 用时 1.7s   2024-06-04 03:49:42 (62.0 KB/s) - 已保存 “redis.conf” [107512/107512])[root@192 conf]# 
  1. 修改配置文件,改成下面这样
[root@192 conf]# vi redis.conf 
[root@192 conf]# cat redis.conf 
# 设置 redis 连接密码
requirepass root# 【数据持久化配置 - 开始】
# 开启 AOF 持久化
appendonly yes# AOF文件刷新的方式
# always 每提交一个修改命令都调用fsync刷新到AOF文件,非常非常慢,但也非常安全。
# everysec 每秒钟都调用fsync刷新到AOF文件,很快,但可能会丢失一秒以内的数据。
# no 依靠OS进行刷新,redis不主动刷新AOF,这样最快,但安全性就差。
appendfsync everysec# 随着持久化的不断增多,AOF文件会越来越大,这个时候就需要AOF文件重写了。AOF文件重写
# 如果该参数取值为yes,那么在重写AOF文件时能提升性能,但可能在重写AOF文件时丢失数据。
# 如果取值为no,则不会丢失数据,但较取值为yes的性能可能会降低。默认取值是no。
no-appendfsync-on-rewrite no# AOF文件重写
# 参数能指定重写的条件,默认是100,
# 即如果当前的AOF文件比上次执行重写时的文件大一倍时会再次触发重写操作。
# 如果该参数取值为0,则不会触发重写操作。
auto-aof-rewrite-percentage 100# AOF文件重写
# 指定触发重写时AOF文件的大小,默认是64MB。
auto-aof-rewrite-min-size 64mb# auto-aof-rewrite-percentage 和 auto-aof-rewrite-min-size 两个参数指定的重写条件是“And”的关系。
# 即只有当同时满足这两个条件时才会触发重写操作。# 【数据持久化配置 - 结束】# 绑定redis服务器网卡IP,默认为127.0.0.1,即本地回环地址。
# 这样的话,访问redis服务只能通过本机的客户端连接,而无法通过远程连接。
# 如果bind选项为空的话,那会接受所有来自于可用网络接口的连接。
# bind 172.0.0.4 127.0.0.1
# bind 127.0.0.1 -::1#默认yes,开启保护模式,限制为本地访问,改为no,允许接受其他主机连接此redis。
protected-mode no# Redis key 过期事件监听
notify-keyspace-events Ex[root@192 conf]# 
  1. 下载镜像
docker pull redis:6.2.1
  1. 运行容器
# 自定义启动 redis
docker run -d \
-p 6379:6379 \
--restart=always \
--name redis \
-v /root/data/redis/data:/data \
-v /root/data/redis/conf/redis.conf:/etc/redis/redis.conf \
redis:6.2.1 \
redis-server /etc/redis/redis.conf \
--appendonly yes
  1. 进入容器内部测试
[root@192 conf]# docker exec -it redis bash
root@b2ab04476b44:/data# redis-cli
127.0.0.1:6379> set k1 v1
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth root  # 这里和redis.conf中配置的密码一致
OK
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> 
  1. 关虚拟机重启,启动redis看看有没有持久化
[root@192 ~]# systemctl start docker
[root@192 ~]# docker ps
CONTAINER ID   IMAGE                       COMMAND                   CREATED         STATUS         PORTS                                                                           NAMES
b2ab04476b44   redis:6.2.1                 "docker-entrypoint.s…"   7 minutes ago   Up 6 seconds   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp                                       redis
94618b89f030   mongo:latest                "docker-entrypoint.s…"   12 days ago     Up 6 seconds   0.0.0.0:27017->27017/tcp, :::27017->27017/tcp                                   mongo-service
ca8714734388   canal/canal-server:v1.1.5   "/alidata/bin/main.s…"   2 weeks ago     Up 6 seconds   9100/tcp, 11110/tcp, 11112/tcp, 0.0.0.0:11111->11111/tcp, :::11111->11111/tcp   canal
d85264eb9c37   quay.io/minio/minio         "/usr/bin/docker-ent…"   5 weeks ago     Up 7 seconds                                                                                   minio1
[root@192 ~]# docker exec -it redis bash
root@b2ab04476b44:/data# redis-cli
127.0.0.1:6379> get k1
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth root
OK
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> exit
root@b2ab04476b44:/data# exit
exit
[root@192 ~]# 
[root@192 ~]# cd /root/data/redis/data
[root@192 data]# ls
appendonly.aof

发现键值对k1 v1仍然存在,说明已经持久化,且数据卷中新增了文件appendonly.aof。

  1. redis远程连接工具
    在这里插入图片描述
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/21990.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ant Design Vue 动态表头并填充数据

在使用 Ant Design Vue 动态生成表头并填充数据时,你需要以下几个关键步骤: 1. **安装 Ant Design Vue**: 确保你已经安装并配置了 Ant Design Vue。 bash npm install ant-design-vue 2. **引入 Ant Design Vue 组件**&#xff…

怎么找抖音视频素材?下载抖音的素材视频网站分享给你

在这个视觉印象至关重要的时代,选用高质量的视频素材对于制作抖音视频来说是关键。如果你正在寻找适合的视频素材来丰富你的抖音创作,以下这份详细的视频素材网站指南将帮助你迈出第一步。 蛙学府网 蛙学府网提供了丰富多样的视频素材,包括动…

香橙派Orange AI Pro / 华为昇腾310芯片 部署自己训练的yolov8模型进行中国象棋识别

香橙派Orange AI Pro / 华为昇腾310芯片 部署自己训练的yolov8模型进行中国象棋识别 一、香橙派简介1.1、香橙派 AI Pro 硬件资源介绍1.2、华为昇腾310(Ascend310) 简介1.3、 昇腾310AI能力和CANN 简介昇腾310 NPU简介 二、远程环境配置2.1、ssh2.2、vnc…

深入理解 Python3 函数:从基础语法到高级应用

Python3 函数是构建模块化代码的基本单位,允许我们将代码组织成独立的、可重用的块。本文将详细介绍 Python3 函数的基本语法、常用命令、示例、应用场景、注意事项,并进行总结。 基本语法 在 Python 中,函数的定义使用 def 关键字&#xf…

VScode中Markdown图片尺寸大小调整

自存用&#xff0c;不保证适用于所有人 默认情况 ![图片描述](2024-06-03-11-57-36.png)图片居中且改变尺寸 <div aligncenter><img src"2024-06-02-15-09-50.png" width"400"></div>"2024-06-02-15-09-50.png"是图片链接&…

HTML5 Canvas 绘图教程二

在本教程中&#xff0c;我们将探讨 canvas 的高级用法&#xff0c;包括复杂的绘图 API、坐标系统和变换操作、平滑动画技术以及复杂应用和游戏开发的实践。 1. 绘图 API 高级方法 1.1 二次贝塞尔曲线 (quadraticCurveTo) 二次贝塞尔曲线需要两个点&#xff1a;一个控制点和一…

沈阳 2024年 融资融券怎么开通,利率多少?

融资融券是什么&#xff0c;为什么能赚钱&#xff0c;怎么赚更多&#xff0c;怎么少付利息 100个4.2% 如果你发现了好股票、好机会&#xff0c;但目前券商的融资利率较高&#xff0c;可以考虑转户并选择低利率的券商&#xff0c; 同时需要注意开通条件和转户产生的成本费用。…

新书推荐:1.3 内存管理模式

本节必须掌握的知识点&#xff1a; 4GB虚拟空间 虚拟内存 多任务切换 1.3.1 4GB虚拟空间 ■Win16操作系统 Windows1.0版本为16位操作系统&#xff0c;支持16位处理器实模式&#xff0c;最大寻址空间为1MB。Win16操作系统的内存管理非常简单&#xff0c;采用分段内存管理模式…

I.MX RT1170之MIPI DSI初始化和显示流程详解

MIPI DSI&#xff08;Mobile Industry Processor Interface Display Serial Interface&#xff09;是一种广泛应用于移动设备显示屏的接口标准。由MIPI联盟制定&#xff0c;DSI接口旨在提供高效、低功耗的显示屏数据传输解决方案。 本节来就通过学习I.MX RT1170单片机中的MIPI…

【Linux】Linux项目自动化构建工具——make/Makefile

1.背景 会不会写makefile&#xff0c;从一个侧面说明了一个人是否具备完成大型工程的能力一个工程中的源文件不计数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;makefile定义了一系列的 规则来指定&#xff0c;哪些文件需要先编译&#xff0c;哪些文件需…

Java集合思维导图

详细内容请看链接内容 Java集合面试题集——2024最新大厂面试

用于对话场景的文本转语音-chattts

网址 https://chattts.com/zh 多语言支持 ChatTTS 的一个关键特性是支持多种语言&#xff0c;包括英语和中文。这使其能够为广泛用户群提供服务&#xff0c;并克服语言障碍 大规模数据训练 ChatTTS 使用了大量数据进行训练&#xff0c;大约有1000万小时的中文和英文数据。这…

【图像识别系统】表情识别Python+人工智能深度学习+TensorFlow+卷积算法网络模型+图像识别

表情识别系统&#xff0c;本系统使用Python作为主要编程语言&#xff0c;通过TensorFlow搭建ResNet50卷积神经算法网络模型&#xff0c;通过对7种表情图片数据集&#xff08;‘Neutral’, ‘Anger’, ‘Disgust’, ‘Fear’, ‘Happy’, ‘Sad’, ‘Surprise’&#xff09;进行…

OpenGL系列(三)VBO、VAO

在OpenGL系列&#xff08;一&#xff09;三角形 用到了VBO和VAO&#xff0c;本文对两者进行介绍。 通过OpenGL的API绘制图形时&#xff0c;需要先定义顶点&#xff0c;如示例中三角形的顶点数组定义如下。 float vertices[] {// 位置信息 // 颜色信息0.5f, -0.5f, 0.…

前端 html格式转md格式插件使用介绍

1.html-to-markdown npm install html-to-markdown 不支持vue32.Marked npm install marked 不支持table转换 官网 https://marked.js.org/3.html-to-md npm i html-to-md import html2md from html-to-md console.log(html2md(<strong><em>strong and italic…

RabbitMQ学习笔记(一)RabbitMQ部署、5种队列模型

文章目录 1 认识MQ1.1 同步和异步通讯1.1.1 同步通讯1.1.2 异步通讯 1.2 技术对比 2 RabbitMQ入门2.1 RabbitMQ单机部署2.2 RabbitMQ基本结构2.3 RabbitMQ队列模型2.3.1 简单队列模型&#xff08;Simple Queue Model&#xff09;2.3.2 工作队列模型&#xff08;Work Queue Mode…

visual studio打包qt算子时,只生成dll没有生成lib等文件

问题&#xff1a;在visual studio配置了qt项目&#xff0c;并打包成dll&#xff0c;原则上会生成一堆文件&#xff0c;包括dll,lib等文件。 解决办法&#xff1a; 挨个右击源代码的所有头文件-》属性-》项类型。改成qt头文件形式&#xff0c;如下。

【JAVA】Java中MyBatis的QueryWrapper的使用

文章目录 前言一、函数解释二、代码实现三、总结 前言 在Java开发中&#xff0c;我们常常需要使用ORM框架来简化数据库操作。MyBatis是一个流行的ORM框架&#xff0c;而MyBatis-Plus是它的一个增强版&#xff0c;提供了更多的便利功能。在这篇博客中&#xff0c;我们将探讨如何…

事务详讲(本地及分布式)

本地事务在分布式的问题: 因为在分布式服务中,难免一个接口中会有很多调用远程服务的情况,这个就非常容易出现问题,以下是一个详细的例子: 例如,你为了保证事物的一致性等要求,所以,你方法上只写了Transactional,但你的业务中又需要调用其他微服务的方法(Feign),这时就容易出现…

XML读写

XML初识 一、背景 自己写的从网页获取内容的小工具&#xff0c;那个网页是涉及到一个模拟器的启动。启动模拟器需要等五分钟才能读取数据。如果每次读都启动模拟器等待&#xff0c;等待时间较久&#xff0c;我在想应该在硬盘中将已经启动过模拟器的标志位写到xml文件中。所以…