缓存教程

     

分布式缓存架构综述

44 5K

本文研究了分布式缓存,强调了它通过改进数据访问和可扩展性对应用程序性能的影响,并提供了实用指导。什么是分布式缓存?分布式缓存是指将信息存储在多个服务器上的方法,这些服务器通常分布在不同的地理位置。与集.

Java缓存备忘大全

61 22K

Java 缓存是一种用于在临时存储区域(称为缓存)中存储和管理经常访问的数据的技术,以提高应用程序性能。缓存通过保持副本随时可用,有助于减少获取或计算数据所需的时间和资源。在 Java 中,缓存可以在.

Thymeleaf+SpringBoot2高吞吐量调优技巧

51 5K

Thymeleaf+SpringBoot2技术如下: Springboot 2.3 + Thymeleaf MongoDB Java 提前监控一些指标:SpringBoot服务: API 响应代码(5.

SpringBoot中实现两级缓存

63 11K

缓存数据意味着我们的应用程序不必访问速度较慢的存储层,从而提高其性能和响应能力。我们可以使用任何内存实现库(例如Caffeine )来实现缓存。虽然这样做提高了数据检索的性能,但如果应用程序部署到多个.

Java中实现TreeMap缓存驱逐策略

37 5K

为了提高应用程序速度,缓存是将经常访问的数据存储在内存中的一种方法。当缓存填满时,缓存逐出策略会决定必须删除哪些内容。Java 的 TreeMap 提供了排序映射实现,它可用于创建具有独特驱逐策略的缓.

Uber是如何花费巨大精力实现缓存精确失效?

73

这篇文章介绍了Uber内部分布式数据库Docstore的架构、挑战以及他们构建的集成缓存解决方案CacheFront。文章详细介绍了CacheFront的设计、特性和实现,以及对最终结果的评估。通过C.

数据库IO有多慢?

176 1

大多数资深开发人员一定都经历过数据库 I/O 性能相当低的情况。但很多人可能没有意识到 I/O 操作有多慢,特别是数据库 I/O 速度与其他数据读写方法的速度之间的差距。Java 是一种用于应用程序开.

Redis 与 NCache 比较

47

NCache 是一个原生 .NET 开源分布式缓存,在高事务性 .NET、.NET Core 和 Java 应用程序中非常流行。 Redis 由 Redis Labs 开发,目前由 Microsoft.

Spring Boot中启用和使用缓存

65 6K

由于Spring端只提供了缓存处理的接口,因此在使用缓存时需要准备单独的实现。Caffeine是一个提供缓存实现的模块。dependencies {  // Spring Boot Starter C.

go-fast-cdn:用Go构建的快速且易于使用的CDN

66 2K

将 SQLite 数据库与 GORM 和 Gin Web 框架结合使用。使用Vite + React和wouter构建的 UI 。如何使用Go-fast CDN 有一个非常易于使用的界面,将在应用程序.

缓存Caffeine与Sieve比较

95 3K

Caffeine缓存作者:背景信息Caffeine 使用自适应窗口技术,因此不会完全影响您的观察结果。论文建议将 1%的窗口作为起点,因为这在数据库、搜索和分析等许多关键工作负载中都很有效。论文最后指.

为何SIEVE缓存没有被早点发现?

61 2K

缓存对于从 CPU 到存储再到整个分布式架构的每一层系统的性能都至关重要。缓存如此重要意味着设计人员需要仔细考虑缓存清空时会发生什么,但他们并不总是做得很好SIEVE 是一种逐出算法,是一种在需要放入.

rockscache:保证与DB最终或强一致性的Redis缓存库

244 11K
随着缓存的引入,分布式系统中的一致性问题出现了,因为数据同时存储在两个地方:数据库和Redis。到目前为止,我们看到的所有缓存解决方案,如果没有在应用程序级别引入版本控制,都无法解决数据不一致场景。目.

Spring Boot中如何缓存数据库查询结果

78 10K

缓存是一种技术,可以存储不经常变化的频繁查询数据,并减少请求的延迟。我们可以在软件应用程序的不同层使用这种技术。在本文中,讨论在 Spring Boot 中使用 ConcurrentHash 和 Re.

SIEVE:比LRU更快更简单的新缓存算法

93 1
新的名为SIEVE的缓存淘汰算法,简单而高效。点击标题SIEVE使用一个队列和一个指针来确定缓存中的哪些数据保留,哪些数据丢弃。它通过访问位来追踪数据的访问状态,并根据访问情况进行淘汰。SIEVE在效.

Robinson:Go中单值线程安全缓存

93

“Robinson”包是一个轻量级且高效的 Go 库,它提供了一个线程安全的缓存实现,用于存储和检索任何类型的值。它提供了一种简单且简约的缓存方法,利用 Go 泛型的强大功能来确保强大的类型和最佳性能.

Java中如何使用lambda实现懒加载?

88 5K

当我们使用需要执行昂贵或缓慢方法的资源(例如数据库查询或 REST 调用)时,我们倾向于使用本地缓存或私有字段。lambda 函数允许我们使用方法作为参数并推迟方法的执行或完全省略它。在本教程中,我们.

Otter:基于 S3-FIFO 算法的最快 Go 内存缓存

196 4K

没有一个 Golang 缓存库是真正无争用的。所有缓存库都带有互斥锁和一些删除策略的标准映射Map。这样,这些Go缓存库就无法达到其他语言(例如Caffeine)的缓存速度。例如,来自 Dgraph .

动态编程DP:生成连续“XYZ”子字符串的最小插入量

82 4K

给定字符串S仅由字符 ' X'、' Y'和'Z'组成。您的任务是找到使字符串仅包含连续的“ XYZ ”子字符串所需的最少操作数,前提是您可以选择三个字符中的任何一个并将其插入S中的任何位置。例子:输入.

Java中六种初始化静态Map方法

486 8K

在 Java 中,初始化静态映射可以创建与类而不是类实例关联的映射对象。这允许该映射在该类的所有实例之间共享并在不创建对象的情况下进行访问。当存储需要在类的多个实例之间共享的数据或维护在整个应用程序中.

缓存如何满足每日 12 亿个API请求?

107 5K

在 RevenueCat,我们每天处理超过 12 亿个请求。只有在以下情况下您才能有效地做到这一点: 您可以在许多 Web 服务器之间分配负载。 您可以使用缓存来加速对热数据的访问并保护后端系统和数据.

DoorDash 如何改进微服务缓存?

176 5K

随着 DoorDash 的微服务架构不断发展,服务间流量也在不断增长。每个团队管理自己的数据并通过 gRPC 服务公开访问权限,gRPC 服务是一个用于构建可扩展 API 的开源远程过程调用框架。由于.

Redis五个使用场景

213

以下是 5 个Redis使用案例:1.缓存最常见的用例是利用 Redis 进行缓存。这有助于保护数据库层不超载。Redis 可为缓存数据提供快速查找时间,有助于提高应用程序性能。2.会话存储使用 Re.

浅谈Linux页面缓存

160 6K

Linux 页面缓存(Page Cache)对于每个SRE来说都是必不可少和至关重要的。对页面缓存理解可以帮助完成日常的 DevOps 类任务以及紧急调试和救火。什么是Linux 页面缓存?从本质上讲.

16 个系统设计面试的概念

280 4K

要在系统设计方面表现出色,最关键的方面之一是深入了解基本的系统设计概念,例如负载平衡、缓存、分区、复制、数据库和代理。1. 域名系统 (DNS)当您在 Web 浏览器中输入域名时,DNS 负责查找关联.

Go-memoize:缓存函数调用结果的开源工具

130

这是一个简单、简洁的 Go 记忆器。缓存昂贵的函数调用。Go-memoize 已经投入生产几年了。在内存中缓存昂贵的函数调用,并具有可配置的超时和清除间隔:import (    "time"    .

使用NGINX+ mirror实现API缓存更新

179 2K

假设我们有一个 URI /profile/syshero。 如果向 /profile/syshero 发送 GET,应用程序就会向客户端提供输出结果。 如果向 /profile/syshero 发送 .

分布式缓存综合指南

561 1 7K
一个重要的网站需要一个网络服务器来接收请求和一个数据库来写入或读取数据。但是,如果每秒收到数百万个请求,这种简单的设置只有在优化数据库或更改整体数据库策略后才能扩展。那是对的吗?数据库最终达到了活动连.

Meta自适应LIFO概念

587

Facebook在队列中使用了自适应LIFO的概念: - 它们在正常情况下使用FIFO顺序 - 他们在高负荷下改用后进先出顺序 理由呢?通过在高负载下保持FIFO顺序,用户可能已经放弃了他们的请求。因.

在Spring Boot中配置Redis作为Hibernate二级缓存

1270 2K

通常情况下,RDBMS 数据库将成为您不断增长的应用程序中的主要可伸缩性瓶颈。这是由于 RDBMS 对水平扩展的天然抵制。已经出现了几种策略来缓解这个问题,包括只读副本、分区、分片以及将一些工作负载卸.