Redis 持久化机制

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,经济版 1GB 1个月
简介: 版权声明:本文首发 http://asing1elife.com ,转载请注明出处。 https://blog.csdn.net/asing1elife/article/details/82876657 ...
版权声明:本文首发 http://asing1elife.com ,转载请注明出处。 https://blog.csdn.net/asing1elife/article/details/82876657

对于如何将数据类型持久化存储,Redis 提供一下 4 种方式

更多精彩

定时快照 snapshot

实现

  1. 在 Redis 内存的一个定时器事件,每隔一段时间就检查数据是否符合定时快照触发的条件
  2. 若触发则创建一个子进程,默认与父进程共享地址空间,再通过子进程遍历整个内存进行存储操作

缺陷

  1. 只能存储一段时间内的内存信息,若系统重启则会丢失上次快照与重启间的数据

基于语句的追加文件 aof

实现

  1. 每条使 Redis 内存数据发生改变的的命令都会被存储到一个 log 文件中
  2. 最终该 log 文件中存放的就是 Redis 的持久化数据

缺陷

  1. 过多的 log 文件导致数据体积过大,当系统重启后再次加载数据时会比较慢
    • 数据加载慢并不是因为读取速度慢,而是因为 log 中的每条命令都会需要在 Redis 中再次执行
  2. 由于每条命令都要写入 log ,所以会导致 Redis 的性能下降

虚拟内存 vm - 已弃用

实现

  1. 用户空间数据换入换出

缺陷

  1. 代码复杂
  2. 重启慢

Diskstore

实现

  1. 弃用虚拟内存后采用的新方式,实际上是使用传统的 B-tree 格式存储数据

总结

  1. 采用合适的数据类型存储数据,并尽可能使用紧凑存储参数
  2. 当业务场景无需持久化时,关闭所有的持久化机制可获得更好的性能及最大的内存使用量
  3. 不要让 Redis 使用的物理内存超过服务器的 3/5
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
1月前
|
NoSQL Java Redis
实现基于Redis的分布式锁机制
实现基于Redis的分布式锁机制
|
1月前
|
canal 缓存 NoSQL
Redis常见面试题(一):Redis使用场景,缓存、分布式锁;缓存穿透、缓存击穿、缓存雪崩;双写一致,Canal,Redis持久化,数据过期策略,数据淘汰策略
Redis使用场景,缓存、分布式锁;缓存穿透、缓存击穿、缓存雪崩;先删除缓存还是先修改数据库,双写一致,Canal,Redis持久化,数据过期策略,数据淘汰策略
Redis常见面试题(一):Redis使用场景,缓存、分布式锁;缓存穿透、缓存击穿、缓存雪崩;双写一致,Canal,Redis持久化,数据过期策略,数据淘汰策略
|
22天前
|
NoSQL Redis 数据库
redis 持久化机制及配置
redis 持久化机制及配置
41 4
|
25天前
|
NoSQL Redis 开发工具
Redis性能优化问题之检查 Redis 实例是否启用了透明大页机制,如何解决
Redis性能优化问题之检查 Redis 实例是否启用了透明大页机制,如何解决
|
25天前
|
NoSQL Linux Redis
Redis性能优化问题之想确认Redis延迟变大是否因为fork耗时导致的,如何解决
Redis性能优化问题之想确认Redis延迟变大是否因为fork耗时导致的,如何解决
|
26天前
|
监控 NoSQL Redis
Redis问题之什么是AOF持久化,它有哪些优点和缺点
Redis问题之什么是AOF持久化,它有哪些优点和缺点
|
1月前
|
监控 NoSQL Redis
|
25天前
|
NoSQL Redis
Redis性能优化问题之禁用内存大页,如何解决
Redis性能优化问题之禁用内存大页,如何解决
|
6天前
|
NoSQL Redis
Redis——设置最大内存 | key淘汰机制
Redis——设置最大内存 | key淘汰机制
18 0