redis中save和bgsave区别

转自:redis中save和bgsave区别

SAVE 和 BGSAVE 两个命令都会调用 rdbSave 函数,但它们调用的方式各有不同:

  • SAVE 直接调用 rdbSave ,阻塞 Redis 主进程,直到保存完成为止。在主进程阻塞期间,服务器不能处理客户端的任何请求。
  • BGSAVE 则 fork 出一个子进程,子进程负责调用 rdbSave ,并在保存完成之后向主进程发送信号,通知保存已完成。 Redis 服务器在BGSAVE 执行期间仍然可以继续处理客户端的请求。
时间: 2024-08-03 07:20:46

redis中save和bgsave区别的相关文章

Redis中SAVE和BGSAVE的区别

Redis的这两个命令都是用于创建当前数据库的备份. 因为Redis持久化选择RDB快照模式,所以Redis并不是实时的进行数据持久化,而是有一定的时间间隔.这个时候如果我们想要手动进行一次持久化,可以使用save或者bgsave命令. SAVE 基本命令: redis 127.0.0.1:6379> SAVE OK 该命令将在 redis 安装目录中创建dump.rdb文件. 影响: SAVE 直接调用 rdbSave函数 ,阻塞 Redis 主进程,直到保存完成为止.在主进程阻塞期间,服务器

redis中multi和pipeline区别以及效率(推荐使用pipeline)

手册得知 pipeline 只是把多个redis指令一起发出去,redis并没有保证这些指定的执行是原子的:multi相当于一个redis的transaction的,保证整个操作的原子性,避免由于中途出错而导致最后产生的数据不一致.通过测试得知,pipeline方式执行效率要比其他方式高10倍左右的速度,启用multi写入要比没有开启慢一点. 上代码,望高手指点. <?php set_time_limit(0); ini_set('memory_limit','1024M'); $redis =

Redis中RDB和AOF持久化区别和联系

RDB和AOF持久化   ?RDB持久化 RDB是什么? 原理是redis会单独创建(fork) 一个与当前进程一模一 样的子进程来进行持久化,这个子进程的所有数据(变量.环境变量,程序程序计数器等)都和原进程一模一 样,会先将数据写入到一个临时文件中,待持久化结束了,再用这个临时文件替换上次持久化好的文件,整个过程中,主进程不进行任何的io操作,这就确保了极高的性能 1.这个持久化文件在哪里 RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘.也是默认的持久化方式,这种方式是就是将

Redis 中的数据持久化策略(RDB)

Redis 是一个内存数据库,所有的数据都直接保存在内存中,那么,一旦 Redis 进程异常退出,或服务器本身异常宕机,我们存储在 Redis 中的数据就凭空消失,再也找不到了. Redis 作为一个优秀的数据中间件,必定是拥有自己的持久化数据备份机制的,redis 中主要有两种持久化策略,用于将存储在内存中的数据备份到磁盘上,并且在服务器重启时进行备份文件重载. RDB 和 AOF 是 Redis 内部的两种数据持久化策略,这是两种不同的持久化策略,一种是基于内存快照,一种是基于操作日志,那么

redis中的RDB持久化详解

1. 如何在redis中配置RDB持久化文件 在redis持久化中  默认是开启RDB模式的.这里我们只需要对RDB进行配置即可 在上面有三个配置选项 分别是 每隔900秒  有一条key进行变更 每个300秒 有10条key进行变更 没隔60秒  有10000条key进行变更. 以上任意条达成条件后,就会重新生成一个dump.rdb文件.就是当前redis内存中完整的快照,这个操作也被称之为snapshotting,快照也可以手动调用save或者bgsave命令,同步或异步执行rdb快照生成

Redis中有序集合的常用命令有哪些?

本文和大家分享的主要是redis 中有序集合类型的常用命令,一起来看看吧,希望对大家 学习redis有所帮助. 一.有序集合类型 有序集合类型,大家从名字上应该就可以知道,实际上就是在集合类型上加了个有序而已.Redis 中的有序集合类型,实际上是在集合类型上,为每个元素都关联一个分数,有序实际上说的是分数有序,我们根据分数的范围获取集合及其他操作.集合的元素依然是不能够相同的,但是分数可以相同. 下面列举有序集合和类型和列表类型的相似处: ① 两者都是有序的(废话!) ② 两者都可以获得某一范

辛星浅析Redis中的配置文件

Redis中的主要配置项如下: (1)daemonize  yes     它表示是否在后台运行,如果写成yes,那么在后台运行,如果是no,则表示不在后台运行. (2)pidfile  /var/run/redis.pid 当Redis在后台运行的时候,Redis默认会把pid文件放在/var/run/redis.pid,我们也可以在运行多个Redis服务时,指定不同的pid文件和端口 (3)port    6379    指定Redis运行的端口,默认是6379 (4)127.0.0.1  

redis中关闭rdb跟aof

当往redis中导入数据时,有时会出现redis server went away的情况,出现这一问题的原因有: 导入的数据量太大,而内存不够(即内存1G,但数据有2G).此时的redis服务需要重启. 可能是同一时间导入的数据太多,导致数据持久化的操作出问题,此时需要关闭rdb跟aof.关闭rdn的命令:config set save "", 关闭aof的命令:config set appendfsync no , 该两种设置查询是否已修改成功,可分别通过config get sav

Redis中sentinel集群的搭建和Jedis测试 图文教程[三]

在前两篇Redis中sentinel集群的搭建和Jedis测试 图文教程[一] 和Redis中sentinel集群的搭建和Jedis测试 图文教程[二] 中分别简述了Redis中sentinel集群的搭建和Java代码的Jedis测试. 这篇主要来简单分析一下Redis-sentinel集群的原理,根据追踪sentinel信息来完成Redis-sentinel集群测试中的详细的原理分析.包括master-slave各个中的sentinel信息的分析,failover过程,master宕机后的le