(五)关于过期键(3)持久化及主从复制对过期键的处理

RDB持久化对过期数据的影响



在执行SAVE或者BGSAVE的时候,会创建RDB文件,它仅保存非过期键,已经过期的不会保存在RDB中。

在启动Redis服务器的时候,如果开启了RDB功能,那么会自动载入RDB文件(从配置文件设置的工作目录中),但是在主从模式下会有所不同:

  • 主服务器:仅会载入未过期数据,已过期的不载入
  • 从服务器:全部载入无论是否过期,对于已过期数据的话,后期主从同步的时候主服务器会情况从服务器的数据,所以即使载入也没有关系。

AOF持久化对过期数据的影响



当触发惰性删除或者定期删除之前,虽然数据已过期,但不会被处理,AOF文件也不会有影响。

当触发惰性删除或者定期删除之后,会在AOF文件中追加一条删除指令。

在执行AOF重写过程中,过期数据不会被保存到AOF文件中。

主从复制模式中对过期键的处理



在Redis启动之后,并运行在主从复制的模式中(与使用哪种持久化方式无关)对于过期数据处理原则如下:

  • 从服务器的过期数据由主服务器控制
  • 从服务器遇到客户端读取过期数据的时候(按生命周期来说已经过期,但是由于主服务器还没有发送删除指令,所以过期数据还是存在于从服务器),从服务器会返回该过期数据的值(并不会提示过期而返回空值)
  • 根据惰性删除原则,客户请求主服务器的键如果过期,那么主服务器会返回空值,并会发送删除指令把从服务器的该过期键删除
时间: 2024-08-11 01:24:32

(五)关于过期键(3)持久化及主从复制对过期键的处理的相关文章

mysql主从复制、redis基础、持久化和主从复制

一.mysql(mariadb)基础 1.基础命令(centos7操作系统下) 1.启动mysql systemctl start mariadb 2.linux客户端连接自己 mysql -uroot -p -h 127.0.0.1 -u 用户 -p 密码验证 -h 连接的主机地址 3.远程链接mysql服务端 mysql -uroot -p -h 192.168.3.115 4.修改mysql密码 # 修改当前用户的密码 set password = PASSWORD('mariadb123

Redis实战 | 持久化、主从复制特性和故障处理思路

前言 前面两篇我们了解了Redis的安装.Redis最常用的5种数据类型.本篇总结下Redis的持久化.主从复制特性,以及Redis服务挂了之后的一些处理思路. 前期回顾传送门: Linux下安装Redis简易教程Redis实战 | 5种Redis数据类型详解 Redis的两种持久化方式 经常有面试官会问:Redis数据存储在内存中,万一断电了怎么办呢? 不要慌,这个其实就是在问Redis的持久化策略啦.我们知道,保存在内存中的数据,在服务重启或者是机器挂掉之后是会丢失的.而硬盘中的数据是不会丢

hibernate中基于主键映射1-1关联关系和基于外键映射1-1关联关系的不同

基于主键映射1-1关联关系和基于外键映射1-1关联关系的不同,主要区别是在配置映射文件上会有区别 两个持久化类为Manager和Department 1:基于主键映射1-1关联关系 1)使用其他持久化类的主键生成主键的实体的映射文件 首先需要指定主键生成方式为foreigner 格式为: <id name="departmentId" type="java.lang.Integer"> <column name="department_i

mysql--外键(froeign key)-----------MySQL外键使用详解

如果一个实体的某个字段指向另一个实体的主键,就称为外键被指向的实体,称之为主实体(主表),也叫父实体(父表).负责指向的实体,称之为从实体(从表),也叫子实体(子表) 作用:用于约束处于关系内的实体增加子表记录时,是否有与之对应的父表记录 如果主表没有相关的记录,从表不能插入 先插入主表数据后再插入从表数据: 在删除或者更新主表记录时,从表应该如何处理相关的记录 设置级联操作:在主表数据发生改变时,与之关联的从表数据应该如何处理    使用关键字:     on update     on de

Oracle的主键约束、唯一约束与外键约束

http://www.shangxueba.com/jingyan/122163.html主键:  1.主键约束: 一个表只能有一个主键约束.主键可以是单个字段,也可以是多个字段.无论是哪种情况,其所有字段都是NOT NULL.  2.Unique约束:一个表可以有多个Unique约束,Unique的字段可以为NULL.  3.主键与Unique:不同点在于一个表只能有一个主键约束,但是可以有多个Unique约束:主键所有字段都是not null,unique可以是null:相同点在于都能保证唯

把联合主键作为另一个表的外键

1.问题:如果表A(a int ,b int),其中a,b 是联合主键; 表B(a int,b int,c int),c是B的主键,其中a,b是外键对A的a,b ,问如何实现? 2.实现: create table A( a int, b int ); create table B( a int, b int, c int  primary key ); alter table A add constraint Primary Key(a,b); alter table B constraint

EF迁移时报错“未定义键。请为该 EntityType 定义键。

模型生成过程中检测到一个或多个验证错误: iXS.Models.OrderDetails: : EntityType“OrderDetails”未定义键.请为该 EntityType 定义键. iXS.Models.OrderSummary: : EntityType“OrderSummary”未定义键.请为该 EntityType 定义键. OrderDetailses: EntityType: EntitySet“OrderDetailses”基于未定义任何键的类型“OrderDetails

Redis的持久化和主从复制机制

Redis持久化 Redis 提供了多种不同级别的持久化方式: RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot) AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集. AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾. Redis 还可以在后台对 AOF 文件进行重写(rewrite),使得 AOF 文件的体积不会超出保存数据集状态所需的实际大小. Redi

redis 持久化与主从复制

持久化:启动服务器存储数据到内存,通过持久化将内存的数据存储到硬盘. rdb(快照),默认(时间有关,到时间就存储) 缺点:非法关闭会丢失数据 redis.conf 中 save 时间  次数    (多长时间操作多少次) dir  ./                 (存放目录) aof 方式,不默认(时间无关,操作一次存储一次) redis.conf 中 appendonly  yes 修改配置文件要重启服务 aof 存放对应的sql语句,修改后重启生效,此时读取aof当中数据. 主从复制