数据持久化

1-6docker数据共享与持久化

巧了我就是萌 提交于 2019-11-30 15:00:23
1、在 Docker 内部以及容器之间管理数据,在容器中管理数据主要有两种⽅式: 数据卷(Data Volumes) 挂载主机⽬录 (Bind mounts) 2、数据卷 数据卷 是⼀个可供⼀个或多个容器使⽤的特殊⽬录,它绕过 UFS ,可以提供很多有⽤的性: 数据卷 可以在容器之间共享和重⽤ 对 数据卷 的修改会⽴⻢⽣效 对 数据卷 的更新,不会影响镜像 数据卷 默认会⼀直存在,即使容器被删除 2-1、数据卷创建、挂载、删除 选择 -v 还是 -–mount 参数自己习惯,区别看上一篇博客,但是推荐使⽤ --mount 参数。 #创建 docker volume create my_test #查看 docker inspect my_test #挂载 docker run -it -d -p 8091:80 --mount source=my_test,target=/opt 172.21.0.10:5000/nginx:v1 #进入容器,创建文件 docker exec -it 30137e66d2ec bash cd /opt mkdir zjy exit #查看是否同步到宿主机 ll -d /var/lib/docker/volumes/my_test/_data/* drwxr-xr-x 2 root root 4096 Sep 27 18:14 /var/lib

ActiveMQ消息持久化

邮差的信 提交于 2019-11-30 14:58:39
  和前面我们说的持久,事物,签收不同的,前面的都是局限在同一台机器上,如果本机器坏了,那全部的消息也都丢失了 和Redis的持久化其实是一个概念,当我的主机宕机了也能将消息持久到硬盘或者其他上面(物理备份),方便恢复 官网详情:http://activemq.apache.org/persistence ActiveMQ的消息持久化机制:   JDBC,AMQ,KahaDB,LevelDB,几种的存储逻辑都是一致的,将消息发出后,消息中心首先将消息存储到本地数据文件,内存数据库或者远程数据库,再试图将消息发送给接收者,成功则将消息从存储中删除,失败则继续尝试发送   消息中心启动后首先要检查指定的存储位置,若发现没有成功发送的消息,则需要把消息发送出去    AMQ :AMQ是一种以文件形式存储的机制,现在淘汰了,是5.3以前的    KahaDB :以日志形式记录消息,5.4以后默认就是KahaDB     配置文件activemq.xml里默认KahaDB     官网详情:http://activemq.apache.org/persistence.html     kahaDB存储在data目录   kahadb目录:   KahaDB消息存储使用一个事物日志(db.log)和一个索引文件(db.data)来存储它的所有地址,日志相当于书的文章,索引相当于目录   db-

transient关键字

若如初见. 提交于 2019-11-30 13:14:22
java中在数据传输过程中我们有时需要使用serialization,serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。当一个对象被序列化的时候,transient型变量的值不包括在序列化的表示中,然而非transient型的变量是被包括进去的。 来源: https://www.cnblogs.com/otways/p/11590695.html

Redis持久化的两种方式

南笙酒味 提交于 2019-11-30 12:41:21
一、引言 山高不辞土壤,才能成其高;大海不择细流,才能成其大; 送你们一句话,自己领悟哈 66666~ 二、redis持久化介绍 redis是一个支持持久化的内存数据库,也就是说redis可以将内存中的数据同步到硬盘,来实现持久化。 redis支持持久化的两种方式: 1、snapshotting(快照),这个是redis默认持久化的方式 快照是redis默认的持久化的方式,这种方式在规定的时间将内存中数据以快照的方式写入到二进制文件中,默认的文件名是: dump.rdb ;可以通过配置设置自动持久化的方式,我们可以修改redis.conf文件,来配置redis在n秒如果超过m个key被修改,则自动做快照操作。 2、Append-only file,简称aof的方式 由于快照的方式有一定的间隔时间,所以如果redis在间隔时间内意外down掉后,就会丢失最后一次快照后的所有数据。 aof比快照方式有更好的持久化性,是由于在使用aof时,redis会将每一个收到的命令通过write函数追加到文件中,当redis重启后,会通过重新执行 aof文件 中的内容,来在内存中重建整个数据库的内容。 三、具体实现 1、快照的方式 打开我们redis.conf的配置文件,搜索save,找到如图信息,以下也有相对应的解释。 save 900 1 #如果在900秒以内,超过1个key被修改

Redis持久化的几种方式

痴心易碎 提交于 2019-11-30 12:41:05
前言 Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务 器。 Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全持久化模式”)。 由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据。 redis提供两种方式进行持久化,一种是 RDB 持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化),另外一种是 AOF (append only file)持久化(原理是将Reids的操作日志以追加的方式写入文件)。那么这两种持久化方式有什么区别呢,改如何选择呢?网上看了大多数都是介绍这两种方式怎么配置,怎么使用,就是没有介绍二者的区别,在什么应用场景下使用。 1、二者的区别 RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘

Redis提供的持久化机制(二)

社会主义新天地 提交于 2019-11-30 12:40:49
1、前言 Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务 器。 Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全持久化模式”)。 由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据。redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化),另外一种是AOF(append only file)持久化(原理是将Reids的操作日志以追加的方式写入文件)。那么这两种持久化方式有什么区别呢,改如何选择呢?网上看了大多数都是介绍这两种方式怎么配置,怎么使用,就是没有介绍二者的区别,在什么应用场景下使用。 2、二者的区别 RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程

关于redis持久化

[亡魂溺海] 提交于 2019-11-30 12:28:12
Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务 器。 Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全持久化模式”)。 由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据。redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化),另外一种是AOF(append only file)持久化(原理是将Reids的操作日志以追加的方式写入文件)。那么这两种持久化方式有什么区别呢,改如何选择呢?网上看了大多数都是介绍这两种方式怎么配置,怎么使用,就是没有介绍二者的区别,在什么应用场景下使用。 RDB存在哪些优势呢? 1). 一旦采用该方式,那么你的整个Redis数据库将只包含一个文件

redis基础

谁都会走 提交于 2019-11-30 11:32:13
一、redis基础 redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 NoSQL 学名(not only sql) 特点: 存储结构与mysql这一种关系型数据库完全不同,nosql存储的是KV形式 nosql有很多产品,都有自己的api和语法,以及业务场景 产品种类: Mongodb redis Hbase hadoop Nosql和sql的区别 应用场景不同,sql支持关系复杂的数据查询,nosql反之 sql支持事务性,nosql不支持 redis特性 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件redis是c语言编写的,支持数据持久化,是key-value类型数据库

redis持久化方法对比分析

允我心安 提交于 2019-11-30 10:11:53
1、前言 最近在项目中使用到Redis做缓存,方便多个业务进程之间共享数据。由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据。redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化),另外一种是AOF持久化(原理是将Reids的操作日志以追加的方式写入文件)。那么这两种持久化方式有什么区别呢,改如何选择呢?网上看了大多数都是介绍这两种方式怎么配置,怎么使用,就是没有介绍二者的区别,在什么应用场景下使用。 2、二者的区别 RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。 AOF持久化以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。 3、二者优缺点 RDB存在哪些优势呢? 1). 一旦采用该方式,那么你的整个Redis数据库将只包含一个文件,这对于文件备份而言是非常完美的。比如,你可能打算每个小时归档一次最近24小时的数据,同时还要每天归档一次最近30天的数据。通过这样的备份策略

Redis实战和核心原理详解(9)RDB和AOF的优缺点对比以及如何选择

▼魔方 西西 提交于 2019-11-30 10:11:36
一、RDB的优缺点 1.1、RDB的优点 (1)RDB文件是紧凑的二进制文件,比较适合做冷备,全量复制的场景。 RDB做会生成多个文件,每个文件都代表了某一个时刻的Redis完整的数据快照; RDB这种多个数据文件的方式,非常适合做冷备,因为大量的一个个的文件,可以每隔一定的时间,复制出来; 可以将这种完整的数据文件发送到一些远程的云服务、分布式存储上进行安全的存储,以预定好的备份策略来定期备份Redis中的数据; AOF也可以做冷备,只有一个文件,但是你可以写个脚本,每隔一定时间,去copy一份这个文件出来,相对比较麻烦,不推荐; 问题:RDB做冷备,优势在哪儿呢? 由Redis去控制固定时长生成快照文件的事情,比较方便; AOF,还需要自己写一些脚本去做这个事情,各种定时; RDB数据做冷备,在最坏的情况下,提供数据恢复的时候,速度比AOF快; (2)相对于AOF持久化机制来说,直接基于RDB数据文件来重启和恢复Redis进程,更加快速; 问题:为什么恢复的时候RDB比AOF快? AOF,存放的指令日志,做数据恢复的时候,其实是要回放和执行所有的指令日志,来恢复出来内存中的所有数据的; RDB,就是一份数据文件,恢复的时候,直接加载到内存中即可; RDB的时候,Redis主进程只需要fork一个子进程,让子进程执行磁盘IO操作来进行RDB持久化即可; (3