用Go开发项目时想让程序抛出的 error 信息不要那么单薄,需要自己搭建项目时先做一番基础工作,自己定义项目的Error类型在包装错误的时候记录上错误的原因和发生的位置,比如像下面这样。...今天我就带大家通过自定义项目Error并实现 Go error interface ,让你的Go项目Error拥有更丰富的错误原因和发生位置的信息。......c4 可以直接查看本章节对应的代码更新 定义项目的Error结构 首先我们在项目的common目录中增加errcode目录,该目录下会创建两个文件error.go 和 code.go。...error.go文件用来存放自定义Error的结构和相关方法,code.go 用来放置项目各种预定义的Error。...我们把Stringer 接口也实现一下,在没有类型字段转换的地方,它还是*AppErr类型,保证这个时候序列化它的时候仍然能得到期望的信息。
持久化功能: redis为了内部数据的安全考虑,会把本身的数据以文件形式保存到磁盘中一份,在服务器重启之后会自动把硬盘的数据恢复到内存(redis)里面。 数据保存到硬盘的过程就成为“持久化”效果。...以上三个sava的意思: 数据修改的频率高,备份的频率也高 数据修改的频率低,备份的频率也低 快照持久化文件名字: 3.png 这个就是备份文件的名字,你可以修改为自己喜欢的名字… 快照持久化文件存储位置...但是也不能每分钟都做快照持久化,太过消耗资源,所以提出了精细持久化。 也就是下面要介绍的AOF持久化。 两者配合使用可以尽最大程度保证数据安全。...我们打开文件查看 9.png 10.png AOF持久化已成功开启。 AOF持久化频率: 意思是每秒备份一次。...redis持久化相关指令补充:
本文主要介绍了 Redis 持久化的两种机制:RDB 和 AOF,以及键过期的策略:惰性删除和定期删除,还有 RDB、AOF 和复制功能对过期键的处理。...AOF AOF 是 Redis 持久化的第二种方式,在 AOF 和 RDB 同时开启时,服务器会优先考虑从 AOF 恢复数据,因为 AOF 每次记录间隔的时间更短。...文件的写入与同步 AOF 的持久化发生在每次事件循环结束之前,会阻塞服务器。在持久化时会调用操作系统的 write 函数,但通常该函数会把数据保存在一个内存缓冲区里面而不是立刻刷入磁盘。...RDB 和 AOF 对比 RDB 的优点: RDB 是一个非常紧凑的文件,它的体积更小,且可以选择持久化的时间,适合做备份的文件。比如每天的备份,每月的备份。...AOF 的优点: AOF 使用追加的方式,每次写入时间很短,因此可以允许更短间隔的持久化操作,比如 1 秒。
一、持久化的作用 1. 什么是持久化 持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。...持久化Redis所有数据保持在内存中,对数据的更新将异步地保存到磁盘上。 ? 2. 持久化的实现方式 快照方式持久化 快照方式持久化就是在某时刻把所有数据进行完整备份。...写日志方式持久化 写日志方式持久化就是把用户执行的所有写指令(增删改)备份到文件中,还原数据时只需要把备份的所有指令重新执行一遍即可。...从 1.1 版本开始, Redis 增加了一种完全耐久的持久化方式:AOF 持久化。...everysec 每秒 fsync 一次:足够快(和使用 RDB 持久化差不多),并且在故障时只会丢失 1 秒钟的数据。
一、持久化的作用 1. 什么是持久化 持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。...持久化Redis所有数据保持在内存中,对数据的更新将异步地保存到磁盘上。 2. 持久化的实现方式 快照方式持久化 快照方式持久化就是在某时刻把所有数据进行完整备份。...写日志方式持久化 写日志方式持久化就是把用户执行的所有写指令(增删改)备份到文件中,还原数据时只需要把备份的所有指令重新执行一遍即可。...从 1.1 版本开始, Redis 增加了一种完全耐久的持久化方式: AOF 持久化。...everysec 每秒 fsync 一次:足够快(和使用 RDB 持久化差不多),并且在故障时只会丢失 1 秒钟的数据。
Redis 持久化 为什么需要持久化? Redis 是基于内存的数据库, 服务一旦宕机, 内存中的数据将全部丢失...., 即持久化机制....工作原理 RDB 利用操作系统提供的写时复制 (Copy-on-Write) 机制来进行持久化, 即当主进程 P fork 出子进程时 Q 时, Q 和 P 共享同一块内存空间, 当 P 准备对某块内存进行写操作时...这样既能够保证 Redis 实例继续服务外部流量, 又能够以最小的成本完成数据的持久化. 但正因如此, 持久化过程中的写操作是不会被记录的. 触发方式 触发rdb持久化的方式有2种: 手动触发....自动触发由两个配置项控制, 只有这两个指标同时满足的时候才会发生重写: auto-aof-rewrite-percentage: 当前AOF文件(aof_current_size)和上一次重写发生后AOF
Redis持久化,就是将内存数据保存到硬盘,Redis 持久化存储分为 AOF 与 RDB 两种模式,默认开启rdb。...RDB持久化 RDB 是在某个时间点将数据写入一个临时文件dump.rdb,持久化结束后,用这个临时文件替换上次持久化的文件,达到数据恢复,采用二进制文件形式进行存储。...优点:使用单独子进程来进行持久化,主进程不会进行任何 IO 操作,保证了 redis 的高性能 缺点:RDB 是间隔一段时间进行持久化,如果持久化之间 redis 发生故障,会发生数据丢失。...所有这个持久化方法也通常叫做 snapshots。...对于rdb来说,dump.rdb就是redis持久化文件,通过dump.rdb实现数据的备份和恢复,如果把dump.rdb删除,则redis中的数据将会丢失。
一 持久化的作用 1.1 什么是持久化 redis的所有数据保存在内存中,对数据的更新将异步的保存到硬盘上 1.2 持久化的实现方式 快照:某时某刻数据的一个完成备份, -mysql的Dump...save 60 10000 dbfilename dump-${port}.rdb #以端口号作为文件名,可能一台机器上很多reids,不会乱 dir /bigdiskpath #保存路径放到一个大硬盘位置目录...文件重写需要尺寸 auto-aof-rewrite-percentage AOF文件增长率 统计名 含义 aof_current_size AOF当前尺寸(单位:字节) aof_base_size AOF上次启动和重写的尺寸...的选择 4.1 rdb和aof的比较 命令 rdb aof 启动优先级 低 高(挂掉重启,会加载aof的数据) 体积 小 大 恢复速度 快 慢 数据安全性 丢数据 根据策略决定 轻重 重 轻 4.2...rdb最佳策略 rdb关掉,主从操作时 集中管理:按天,按小时备份数据 主从配置,从节点打开 4.3 aof最佳策略 开:缓存和存储,大部分情况都打开, aof重写集中管理 everysec:通过每秒刷新的策略
RDB和AOFRDB磁盘中会有一个.rdb文件来持久化redis内存中的数据。...我们可以自己配置生成.rdb文件的时机(save \ \代表距在seconds时间内,并且有changes次修改就开启持久化线程进行.rdb文件的生成),可以看成一个滑动窗口...bgsave会fork一个 子线程 ,不会阻塞redis其它操作,由子线程来进行.rdb文件的快照式生成,生成的时候redis正常运行,redis只会允许一个子线程来进行.rdb文件,如果已有子线程在执行持久化操作的时候...,条件又满足了,那么就会忽略这次的持久化操作。...,完全依赖操作系统的缓冲区刷新机制(性能最好,最不安全)aof在内存中也对应有一个缓存,每条命令都会先保存到这个缓存中,然后在 appendfsync everysec 状态下,每秒都会将缓存里的命令持久化到
目录 1.Redis的持久化 1.1Redis持久化概述 2.RDB持久化机制 2.1RDB持久化机制优点 2.2RDB持久化机制缺点 2.3RDB...持计划机制的配置 2.4演示:RDB持久化 3.AOF持久化机制 3.1AOF持久化机制优点 3.2AOF持久化机制缺点 3.3AOF持久化机制配置...2.RDB持久化机制 2.1RDB持久化机制优点 1.方便备份与恢复 整个Redis数据库将只包含一个文件,默认是dump.rdb,这对于文件备份和恢复而言是非常完美 的。...Redis中提供了3种同步策略 每秒同步 每过1秒记录一次操作,持久化一次 每修改同步 每次修改键和值,记录一次操作,持久化一次 不同步 不进行持久化的操作,默认值 3.2AOF持久化机制缺点.../AOF持久化在执行,没有bgrewriteaof在进行; 当前AOF文件大小要大于redis.conf配置的auto-aof-rewrite-min-size大小; 当前AOF文件大小和最后一次重写后的大小之间的比率等于或者等于指定的增长百分比
持久化有两种方式,一种是RDB,操作手段是将数据从内存中写到磁盘,生成一个经过压缩的RDB文件,另一种持久化方式叫AOF,是把Redis执行的命令行逐句记录下来,追加在类似日志的文件中。...3 AOF持久化 除了RDB持久化功能之外,Redis还提供了AOF(Append Only File)持久化功能。...与RDB持久化通过保存数据库中的键值对来记录数据库状态不同,AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的,如图所示: image.png 如果我们对空白的数据库执行以下写命令...AOF持久化功能的实现可以分为命令追加(append)、文件写入、文件同步(sync)三个步骤; 命令追加 当AOF持久化功能处于打开状态时,服务器在执行完一个写命令之后...3.3 AOF持久化的效率和安全性 服务器配置 appendfsync 选项的值直接决定 AOF 持久化功能的效率和安全性。
AOF和RDB持久化的区别 redis 作为我们经常使用的工具之一,熟悉它的特性还是很有必要的,这次写这篇文章也是在这方面吃了点亏, 我在参加某计算机考试时,有道题询问了这方面知识,原题我也记不大清楚了...AOF和RDB持久化过程回顾 Redis持久化AOF原理+伪代码实现 Redis持久化RDB原理+伪代码实现 从前两篇文章我们知道了 AOF 和 RDB 持久化的一些细节,忘了的可以再去看看哦!...我们再来对比一下,什么环境选择什么持久化方式比较好?...首先我们对两种持久化方式的过程进行回顾 AOF持久化过程 AOF 持久化是类似 Mysql 的 binlog 日志,记录所有的修改操作,所有客户端发送的命令都以 Redis命令协议 格式进行追加保存,...针对 RDB 不适合实时持久化的问题, Redis 提供了AOF持久化方式来解决。
appendfilename "appendonly.aof" # 指定更新日志条件 # appendfsync always appendfsync everysec # appendfsync no always:同步持久化...3.总结 Redis 默认开启RDB持久化方式,在指定的时间间隔内,执行指定次数的写操作,则将内存中的数据写入到磁盘中。 RDB 持久化适合大规模的数据恢复但它的数据一致性和完整性较差。...Redis 需要手动开启AOF持久化方式,默认是每秒将写操作日志追加到AOF文件中。 AOF 的数据完整性比RDB高,但记录内容多了,会影响数据恢复的效率。...若只打算用Redis 做缓存,可以关闭持久化。 若打算使用Redis 的持久化。建议RDB和AOF都开启。其实RDB更适合做数据的备份,留一后手。AOF出问题了,还有RDB。...和redis的事务类似,redis管道能完成的操作也能够被更加灵活的redis脚本实现,但是脚本的可读性不强、可维护性差。
文章目录 RDB 配置 测试 AOF 配置 修复 如何选择 Redis是内存数据库,所以一旦断电或服务器进程退出,都会丢失数据,所以Redis提供了持久化功能。...同时拥有父进程和子进程。 子进程将数据集写入到一个临时 RDB 文件中。 当子进程完成对新 RDB 文件的写入时,Redis 用新 RDB 文件替换原来的 RDB 文件,并删除旧的 RDB 文件。...工作原理 AOF 重写和 RDB 创建快照一样,都巧妙地利用了写时复制机制: Redis 执行 fork() ,现在同时拥有父进程和子进程。 子进程开始将新 AOF 文件的内容写入到临时文件。...修复 持久化测试和RGB大同小异,删除aof文件后数据丢失。说一下AOF文件修复: 修改配置开启AOF,进行若干写操作: ? ? 然后再次连接redis客户端,报错拒绝连接: ?
在宿主机访问容器提供的httpd服务[root@localhost scripts]# curl http://10.66.0.3containerd net web test3、Containerd容器数据持久化存储实现把宿主机目录挂载至...Containerd容器中,实现容器数据持久化存储# ctr container create docker.io/library/busybox:latest busybox3 --mount type
Redis 有两种持久化方案,RDB (Redis DataBase)和 AOF (Append Only File)。如果你想快速了解和使用RDB和AOF,可以直接跳到文章底部看总结。...本章节通过配置文件,触发快照的方式,恢复数据的操作,命令操作演示,优缺点来学习 Redis 的重点知识持久化。 RDB 详解 RDB 是 Redis 默认的持久化方案。...,120秒内修改5次则持久化一次。...总结 Redis 默认开启RDB持久化方式,在指定的时间间隔内,执行指定次数的写操作,则将内存中的数据写入到磁盘中。 RDB 持久化适合大规模的数据恢复但它的数据一致性和完整性较差。...若只打算用Redis 做缓存,可以关闭持久化。 若打算使用Redis 的持久化。建议RDB和AOF都开启。其实RDB更适合做数据的备份,留一后手。AOF出问题了,还有RDB。
准备工作下载相关镜像 mysql/mysql-server:5.7 nacos/nacos-server:1.1.4 一.docker mysql:5.7的持久化存储及远程连接 ###...mysql-server:5.7 参数说明: -p 3306:3306:宿主机端口:容器端口 --name mysql:容器名字 -v:挂载宿主机的一个目录, 持久化存储的关键所在...native进行连接了 注1:数据库字符集查看 show variables like'character%'; 5.创建数据库nacos_config,并进行初始化...6.持久化测试 删除容器,重启容器,测试之前添加的数据naocs及数据是否存在 7.小结:使用bridge网络创建mysql5.7容器,创建并初始化数据库nacos 二. nacos-docker...proxy_pass http://tomcats/; #} } } 4.重启nginx 五.附录(补充点) 附录一:linux中使用命令导入导出数据 1.导出数据库 1.1导出数据和表结构
现在我们需要在redis软件里面的redis.conf配置里面对rdb进行配置