首页 > 其他分享 >分布式缓存

分布式缓存

时间:2023-12-20 23:56:11浏览次数:46  
标签:文件 缓存 Redis RDB 进程 执行 数据 分布式

单点redis的问题

  • 数据丢失问题:Redis是内存存储,服务重启可能会丢失数据。解决:数据持久化
  • 并发能力问题:单节点并发能力不足。解决:主从集群,读写分离。
  • 故障恢复:需要自动的故障恢复手段。解决:Redis哨兵,实现健康检测和自动恢复。
  • 存储能力问题:单节点Redis难以满足海量数据存储。解决:搭建分片集群,利用插槽机制动态扩容。

Redis持久化

RDB持久化

RDB全称Redis Database Backup file(Redis数据备份文件),也被叫做Redis数据快照。 简单来说就是把内存中的所有数据都记录到磁盘中。当Redis实例故障重启后,从磁盘读取快照文件,恢复数据。

快照文件称为RDB文件,默认是保存在当前运行目录。

RDB执行时机:

  1. Redis停机时会执行一次RDB。 (save命令由Redis主进程来执行RDB,会阻塞所有命令;bgsave命令则开启子进程执行RDB,是异步的,避免主进程受到影响)
  2. Redis内部有触发RDB的机制,可以在redis.conf文件中找到。
  3. 异步持久化bgsave原理

    RDB方式bgsave的基本流程?
    1. fork主进程得到一个子进程(复制页表),共享内存空间
    2. 子进程读取内存数据并写入新的RDB文件
    3. 用新RDB文件替换旧的RDB文件。(更新备份文件)

    fork采用的是copy-on-write技术:
    当主进程执行读操作时,访问共享内存;
    当主进程执行写操作时,则会拷贝一份数据,执行写操作。

    极端情况:主进程把所有原数据都分别进行了一次修改,产生了两倍大的内存占用(一份原,一份副本),很耗内存。

     

    save一般在redis服务结束的时候使用。

    bgsave一般在redis服务使用时。

RDB会在什么时候执行?save 60 1000代表什么含义?
默认是服务停止时执行。也可以配置config文件触发执行。
save 60 1000代表60秒内至少执行1000次修改则触发RDB
RDB的缺点?
RDB执行间隔时间长,两次RDB之间写入数据有丢失的风险(相当于每次变化只是努力存最终版的样子,如果未来得及存,就丢失了)
fork子进程、压缩、写出RDB文件都比较耗时

AOF持久化

AOF全称为Append Only File(追加文件)。Redis处理的每一个写命令都会记录在AOF文件,可以看做是命令日志文件。

RDB和AOF比较

 

标签:文件,缓存,Redis,RDB,进程,执行,数据,分布式
From: https://www.cnblogs.com/fengok/p/17917898.html

相关文章

  • 分布式事务
    事务我们设想一个场景,这个场景中我们需要插入多条相关联的数据到数据库,不幸的是,这个过程可能会遇到下面这些问题:数据库中途突然因为某些原因挂掉了。客户端突然因为网络原因连接不上数据库了。并发访问数据库时,多个线程同时写入数据库,覆盖了彼此的更改。......数据库事务......
  • Redis缓存
    Redis(RemoteDictionaryServer)是一个开源的高性能键值对(key-value)存储系统,常被用作数据库、缓存和消息代理。它支持多种数据结构,如字符串、哈希表、列表、集合和有序集合。 为什么要用Redis?使用Redis有多个原因,包括:高性能:Redis是基于内存存储计算的,其性能速度远超MySQL等数......
  • Seata:打造行业首个分布式事务产品
    作者:季敏,阿里云分布式事务产品负责人、Seata开源项目创始人微服务架构下数据一致性的挑战微服务开发的痛点在2019年,我们基于DubboEcosystemMeetup,收集了2000多份关于“在微服务架构,哪些核心问题是开发者最关注的痛点?”的调研问卷。最终分布式事务问题在调研中占比最大,约占......
  • Seata:打造行业首个分布式事务产品
    作者:季敏,阿里云分布式事务产品负责人、Seata开源项目创始人微服务架构下数据一致性的挑战微服务开发的痛点在2019年,我们基于DubboEcosystemMeetup,收集了2000多份关于“在微服务架构,哪些核心问题是开发者最关注的痛点?”的调研问卷。最终分布式事务问题在调研中占比最大......
  • seata分布式事务不生效
    Fegin调用使用了Fallback降级或抛出的异常被全局处理解决:1.通过GlobalTransactionContext.reload(RootContext.getXID()).rollback()进行手动回滚==============服务A@ServicepublicclassServiceAImplimplementsIServiceA{privatestaticfinalLoggerlog=......
  • 《分布式中间件核心原理与RocketMQ最佳实践》
    ......
  • DeepSpeed分布式训练
    一、DeepSpeed总纲官方文档:DeepSpeed官方英文文档cpoy下来的原版DeepSpeed模型的训练是使用DeeSpeed引擎完成的DeepSpeed引擎可以包装任何torch.nn.module类型的模型二、训练1、通过deepspeed.initialize初始化#deepspeed.initialize确保分布式数据并行或混合精度......
  • 分布式资源管理和调度
    分布式资源管理和调度分布式资源管理和调度是指在分布式系统中有效地管理和调度系统中的资源,以满足各种任务的需求。在一个分布式系统中,资源可以包括计算资源(如CPU、内存)、存储资源(如磁盘空间)、网络带宽等。分布式资源管理的目标是实现高效的资源利用和公平的资源分配。它需要考......
  • Redis数据库 | 发布订阅、主从复制、哨兵模式、缓存雪崩
    ......
  • 李强 分布式计算、云计算与大数据 作者:林伟伟 著出版社:机械工业出版社出版时间:20
    前言背景分布式计算从20世纪六七十年代发展到现在,一直是计算机科学技术的理论与应用的热点问题,特别是*近几年,随着互联网、移动互联网、社交网络应用的发展,急需分布式计算的新技术——云计算、大数据,以满足和实现新时代计算机的应用需求。云计算、大数据等新技术本质上是分布式计......