redis基础05-Redis持久化
Redis的持久化方式:
1.RDB模式 快照(snapshots)
- 默认持久化方式,redis中默认每15分钟持久化一次;将Redis中内存的信息写入到.rdb结尾的文件中。当redis节点出现宕机/断电,Redis再次重启是先读取rdb持久化文件,恢复内存数据;
- 缺省情况情况下,Redis把数据快照存放在磁盘上的二进制文件中,文件名为dump.rdb。你可以配置Redis的持久化策略,例如数据集中每N秒钟有超过M次更新,就将数据写入磁盘;或者你可以手工调用命令SAVE或BGSAVE。
工作原理
. Redis forks.
. 子进程开始将数据写到临时RDB文件中。
. 当子进程完成写RDB文件,用新文件替换老文件。
. 这种方式可以使Redis使用copy-on-write技术。
RDB持久化的总结
- redis中默认的持久化策略
- redis中可以手动的进行持久化 sava bgsave
- 手动的修改redis的持久化策略 save 时间 set次数
- redis的持久化文件名称必须不同
- RDB文件在固定的时间间隔持久化数据,不能保证实时持久化
2.AOF
- 快照模式并不十分健壮,当系统停止,或者无意中Redis被kill掉,最后写入Redis的数据就会丢失。这对某些应用也许不是大问题,但对于要求高可靠性的应用来说,Redis就不是一个合适的选择。Append-only文件模式是另一种选择。
你可以在配置文件中打开AOF模式
- 说明:AOF策略能够满足实时持久化的要求,但是消耗的性能较高(rdb).AOF持久化策略模式是关闭的.如果需要开启只需要将appendonly yes.当开启了AOF持久化策略后,RBD模式将不起作用.并且生成持久化文件appendonly.aof
AOF文件默认的持久化策略
- always: 实时备份.这时的性能会很低
- everysec: 每秒进行一次数据持久化.效率略低于rdb
- no: 将具体备份的时间交给操作系统决定.
AOF的总结
- 能够实现实时备份
- 对于数据完整性要求较高时使用AOF备份
- AOF的效率略低于RDB
- 根据不用的公司需要选择不同的持久化方式
3、虚拟内存方式
- 当你的key很小而value很大时,使用VM的效果会比较好.因为这样节约的内存比较大.
- 当你的key不小时,可以考虑使用一些非常方法将很大的key变成很大的value,比如你可以考虑将key,value组合成一个新的value.
- vm-max-threads这个参数,可以设置访问swap文件的线程数,设置最好不要超过机器的核数,如果设置为0,那么所有对swap文件的操作都是串行的.可能会造成比较长时间的延迟,但是对数据完整性有很好的保证.
- 自己测试的时候发现用虚拟内存性能也不错。如果数据量很大,可以考虑分布式或者其他数据库
redis存储
- redis使用了两种文件格式:全量数据和增量请求。
- 全量数据格式是把内存中的数据写入磁盘,便于下次读取文件进行加载;
- 增量请求文件则是把内存中的数据序列化为操作请求,用于读取文件进行replay得到数据,序列化的操作包括SET、RPUSH、SADD、ZADD。
redis的存储分为内存存储、磁盘存储和log文件三部分,配置文件中有三个参数对其进行配置。
save seconds updates,save配置,指出在多长时间内,有多少次更新操作,就将数据同步到数据文件。这个可以多个条件配合,比如默认配置文件中的设置,就设置了三个条件。
appendonly yes/no ,appendonly配置,指出是否在每次更新操作后进行日志记录,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为redis本身同步数据文件是按上面的save条件来同步的,所以有的数据会在一段时间内只存在于内存中。
appendfsync no/always/everysec ,appendfsync配置,no表示等操作系统进行数据缓存同步到磁盘,always表示每次更新操作后手动调用fsync()将数据写到磁盘,everysec表示每秒同步一次。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏