rdb

Redis持久化(Persistence):了解如何配置redis的持久化。

半世苍凉 提交于 2019-12-05 06:51:39
Redis持久化机制 RDB持久化方式 :在指定时间间隔对数据进行快照存储 AOF持久化方式 :每次写操作都会记录下来,当服务器重启的时候会重新执行这些命令来恢复原始数据。AOF命令以redis协议追加保存每次写的操作到文件末尾,Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大。 同时开启两种持久化机制: 在这种情况下,当Redis重启的时候会优先载入AOF文件来恢复原始的数据,因为在通常情况下AOF文件保存的数据集要比RDB文件保存的数据集要完整。 不使用任何持久化方式 :如果你只希望你的数据在服务器运行时候存在,你也可以不使用任何持久化方式。 RDB的优点 RDB是一个非常紧凑的文件,它保存了某个时间点的数据集,非常 适用于数据集的备份 ,比如:你可以每个小时保存一下过去24h内的数据,同时每天保存过去30天的数据,这样即使出了问题也可以根据需求恢复到不同版本的数据集。 RDB是一个紧凑的单一文件,很方便的传送到另一个远端数据中心,非常 适用于灾难恢复 。 RDB在保存RDB文件时父进程唯一需要做的就是fork出一个子进程,接下来的工作全部交给子进程来完成,可以 最大化Redis的性能 。 与AOF相比,在恢复大的数据集的时候, RDB方式会更快一些 。 RDB的缺点 redis宕机丢失数据更多 :如果你希望在redis意外停止工作(假如电源中断

Redis持久化的几种方式——深入解析RDB

浪子不回头ぞ 提交于 2019-12-04 19:01:27
Redis 的读写都是在内存中,所以它的性能较高,但在内存中的数据会随着服务器的重启而丢失,为了保证数据不丢失,我们需要将内存中的数据存储到磁盘,以便 Redis 重启时能够从磁盘中恢复原有的数据,而整个过程就叫做 Redis 持久化。 Redis 持久化也是 Redis 和 Memcached 的主要区别之一,因为 Memcached 是不具备持久化功能的。 1.持久化的几种方式 Redis 持久化拥有以下三种方式: 快照方式 (RDB, Redis DataBase)将某一个时刻的内存数据,以二进制的方式写入磁盘; 文件追加方式 (AOF, Append Only File),记录所有的操作命令,并以文本的形式追加到文件中; 混合持久化方式 ,Redis 4.0 之后新增的方式,混合持久化是结合了 RDB 和 AOF 的优点,在写入的时候,先把当前的数据以 RDB 的形式写入文件的开头,再将后续的操作命令以 AOF 的格式存入文件,这样既能保证 Redis 重启时的速度,又能简单数据丢失的风险。 因为每种持久化方案,都有特定的使用场景,让我们先从 RDB 持久化说起吧。 2.RDB简介 RDB(Redis DataBase)是将某一个时刻的内存快照(Snapshot),以二进制的方式写入磁盘的过程。 3.持久化触发 RDB 的持久化触发方式有两类:一类是手动触发

mac下redis安装、设置、启动停止

好久不见. 提交于 2019-12-04 09:08:39
常用命令说明 redis服务器:redis-server redis客户端:redis-cli redis性能测试工具:redis-benchmark AOF文件修复工具:redis-check-aof RDB文件修复工具:redis-check-rd redis设置临时密码:config set requirepass 密码 redis获取临时密码:config get requirepass 启动和停止 服务端启动 默认启动 如上,在命令redis-server即启动redis服务端。且接受客户端连接 根据设置启动 在 /usr/local/redis目录下建立bin,etc,db三个目录 把/usr/local/redis/src目录下的mkreleasehdr.sh,redis-benchmark, redis-check-rdb, redis-cli, redis-server拷贝到bin目录 在etc下,新建配置redis.conf,内容如下。 /usr/local/redis下新建日志文件log-redis.log,并修改当前用户使用权限。sudo chown -R shoren /usr/local/redis/ 启动服务端:redis-server /usr/local/redis/etc/redis.conf #修改为守护模式 daemonize yes

Redis中的键值过期操作

∥☆過路亽.° 提交于 2019-12-04 06:49:43
1.过期设置 Redis 中设置过期时间主要通过以下四种方式: expire key seconds:设置 key 在 n 秒后过期; pexpire key milliseconds:设置 key 在 n 毫秒后过期; expireat key timestamp:设置 key 在某个时间戳(精确到秒)之后过期; pexpireat key millisecondsTimestamp:设置 key 在某个时间戳(精确到毫秒)之后过期; 下面分别来看以上这些命令的具体实现。 1)expire:N 秒后过期 127.0.0.1:6379> set key value OK 127.0.0.1:6379> expire key 100 (integer) 1 127.0.0.1:6379> ttl key (integer) 97 其中命令 ttl 的全称是 Time To Live 表示此键值在 n 秒后过期。例如,上面的结果 97 表示 key 在 97s 后过期。 2)pexpire:N 毫秒后过期 127.0.0.1:6379> set key2 value2 OK 127.0.0.1:6379> pexpire key2 100000 (integer) 1 127.0.0.1:6379> pttl key2 (integer) 94524 其中 pexpire key2

How to open .rdb file using R

纵饮孤独 提交于 2019-12-04 01:33:09
问题 My question is quite simple, but I couldn't find the answer anywhere. How do I open a .rdb file using R? It is placed inside an R package. 回答1: I have been able to solve the problem, so I am posting the answer here in case someone needs it in the future. #### Importing data from .rdb file #### setwd("path...\\Rsafd\\Rsafd\\data") # Set working directory up to the file that contains # your .rds and .rdb files. readRDS("Rdata.rds") # see metadata contained in .rds file # lazyLoad is the

k8s删除Terminating状态的命名空间

情到浓时终转凉″ 提交于 2019-12-03 21:00:42
背景: 我们都知道在k8s中 namespace 有两种常见的状态,即Active和Terminating状态,其中后者一般会比较少见,只有当对应的命名空间下还存在运行的资源,但是该命名空间被删除时才会出现所谓的 terminating 状态,这种情况下只要等待k8s本身将命名空间下的资源回收后,该命名空间将会被系统自动删除。但是今天遇到命名空间下已没相关资源,但依然无法删除 terminating 状态的命名空间的情况,特此记录一下. 查看命名空间详情 $ kubectl get ns | grep rdb rdbms Terminating 6d21h $ kubectl get ns rdbms -o yaml apiVersion: v1 kind: Namespace metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"v1","kind":"Namespace","metadata":{"annotations":{},"name":"rdbms"}} creationTimestamp: "2019-10-14T12:17:44Z" deletionTimestamp: "2019-10-14T12:30:27Z" name: rdbms

详解Kubernetes Deployment的描述文件及相关配置

南楼画角 提交于 2019-12-02 04:45:35
Deployment 使用 Kubernetes提供了一种更加简单的更新RC和Pod的机制,叫做Deployment。通过在Deployment中描述你所期望的集群状态,Deployment Controller会将现在的集群状态在一个可控的速度下逐步更新成你所期望的集群状态。Deployment主要职责同样是为了保证pod的数量和健康,90%的功能与Replication Controller完全一样,可以看做新一代的Replication Controller。但是,它又具备了Replication Controller之外的新特性:Replication Controller全部功能:Deployment继承了上面描述的Replication Controller全部功能。 事件和状态查看:可以查看Deployment的升级详细进度和状态。 回滚:当升级pod镜像或者相关参数的时候发现问题,可以使用回滚操作回滚到上一个稳定的版本或者指定的版本。 版本记录: 每一次对Deployment的操作,都能保存下来,给予后续可能的回滚使用。 暂停和启动:对于每一次升级,都能够随时暂停和启动。 多种升级方案:Recreate----删除所有已存在的pod,重新创建新的; RollingUpdate----滚动升级,逐步替换的策略,同时滚动升级时,支持更多的附加参数

How to open .rdb file using R

a 夏天 提交于 2019-12-01 06:55:32
My question is quite simple, but I couldn't find the answer anywhere. How do I open a .rdb file using R? It is placed inside an R package. I have been able to solve the problem, so I am posting the answer here in case someone needs it in the future. #### Importing data from .rdb file #### setwd("path...\\Rsafd\\Rsafd\\data") # Set working directory up to the file that contains # your .rds and .rdb files. readRDS("Rdata.rds") # see metadata contained in .rds file # lazyLoad is the function we use to open a .rdb file: lazyLoad(filebase = "path...\\Rsafd\\Rsafd\\data\\Rdata", envir = parent.frame

Redis异构集群之间数据迁移方案

本秂侑毒 提交于 2019-12-01 04:56:05
一、Redis集群迁移工具 最近在做Redis数据迁移,网上找了两款开源的Redis迁移工具。 第一种:redis-port Codis官方提供的一个工具,redis-port是一个Redis工具,通过解析rdb文件,实现Redis主节点和从节点的数据同步,我具体没有测试过。 简单来说,redis-port就是把自已伪装成slave,欺骗master来达到数据流同步的目地。 发送sync命令->接收rdb->解析rdb->过滤->回放rdb->回放master推送的同步数据 上面是原理流程,非常容易理解,解析完rdb后的每一步都可以高度定制。DBA看着是不是很熟悉? 非常像淘宝的 canal ,基于binlog做数据的增量消费。相比mysql replication的原理redis简单太多,增量的数据就是普通的命令,需要解析的只有rdb文件。 Github地址 : https://github.com/CodisLabs/redis-port 第二种:redis-migrate-tool redis-migrate-tool(简称RMT)是唯品会开源的redis数据迁移工具,主要用于异构redis集群间的数据在线迁移,即数据迁移过程中源集群仍可以正常接受业务读写请求,无业务中断服务时间。这篇blog主要内容包括工具特性简介、使用方法以及注意的要点。关于实现的原理

redis 持久化

北城以北 提交于 2019-11-30 18:39:01
介绍 首先,我们应该明确持久化的数据有什么用,答案是用于重启后的数据恢复。 Redis是一个内存数据库,无论是RDB还是AOF,都只是其保证数据恢复的措施。 所以Redis在利用RDB和AOF进行恢复的时候,都会读取RDB或AOF文件,重新加载到内存中。 Redis持久化的方式 RDB AOF RDB RDB就是Snapshot快照存储,是默认的持久化方式。 可理解为半持久化模式,即按照一定的策略周期性的将数据保存到磁盘。 对应产生的数据文件为dump.rdb,通过配置文件中的save参数来定义快照的周期。 下面是默认的快照设置: save 900 1 #当有一条Keys数据被改变时,900秒刷新到Disk一次 save 300 10 #当有10条Keys数据被改变时,300秒刷新到Disk一次 save 60 10000#当有10000条Keys数据被改变时,60秒刷新到Disk一次 Redis的RDB文件不会坏掉,因为其写操作是在一个新进程中进行的。 当生成一个新的RDB文件时,Redis生成的子进程会先将数据写到一个临时文件中,然后通过原子性rename系统调用将临时文件重命名为RDB文件。 这样在任何时候出现故障,Redis的RDB文件都总是可用的。 同时,Redis的RDB文件也是Redis主从同步内部实现中的一环。 第一次Slave向Master同步的实现是: *