缓存

如何使用 Redis 缓存

如何使用 Redis 缓存 前言 旁路缓存 只读缓存 读写缓存 设置多大的缓存合适 内存被写满了如何处理 缓存经常遇到的问题 1、缓存中的数据和数据库中的不一致 读写缓存 只读缓存 来个异常的栗子 1、先删除缓存后修改数据库 2、先修改数据库然后删除缓存 只读缓存和读写缓存如何选择 2、缓存雪崩 什 ... »

ricklz

Spring的3级缓存和循环引用的理解

此处是我自己的一个理解,防止以后忘记,如若那个地方理解不对,欢迎指出。 一、背景 在我们写代码的过程中一般会使用 @Autowired 来注入另外的一个对象,但有些时候发生了 循环依赖,但是我们的代码没有报错,这个是什么原因呢? 二、前置知识 1、考虑循环依赖的类型 此处我们考虑 单例 + @Aut ... »

huan1993

JuiceFS 缓存预热详解

缓存预热是一个比较常见的概念,相信很多小伙伴都有所了解。对于 JuiceFS 来说,缓存预热就是将需要操作的数据预先从对象存储拉取到本地,从而获得与使用本地存储类似的性能表现。 缓存预热 JuiceFS 缓存预热是一种主动缓存手段,它可以将高频使用的数据预先缓存到本地,从而提升文件的读写效率。 使用 ... »

JuiceData

【原创】分布式之一行代码解决缓存击穿问题

引言 今天,重新回顾一下缓存击穿这个问题! 之所以写这个文章呢,因为目前网上流传的文章落地性太差(什么布隆过滤器啊,布谷过滤器啊,嗯,你们懂的),其实这类方案并不适合在项目中直接落地。 那么,我们在项目中落地代码的时候,其实只需要一个注解就能解决这些问题,并不需要搞的那么复杂。 本文有一个前提,读者 ... »

rjzheng

分布式缓存--缓存与数据库强一致场景下的方案

1. 概述 缓存与数据库的强一致性,也称线性一致性,核心要求是:数据库中的值发生变更,缓存数据要实现同步复制,并且一旦操作完成,随后任意客户端的查询都必须返回这一新值。以下图为例,一旦写入b完成,必须保证读到;而写入过程中,认为值的跳变可能发生在某一瞬间,因此读到a或b都是可能的。数据库与缓存作为一 ... »

HTTP:聊一聊HTTP中的强制缓存

http响应response headers中会有一个cache-control,这个参数就是用来做强制缓存的 一、什么是强制缓存 强制缓存就是服务端告诉客户端某些资源(JS CSS IMG)需要按照某种方法存在客户端本地,下次请求时直接从本地缓存中获取资源,不用再通过服务器,提高了网页加载速度。 ... »

java的Integer中也会有缓存

在上篇《java的自动拆箱会发生NPE》博客中接收了java中的Integer中的自动拆箱产生的NPE,其实对于所有的包装类来说都是一样的,都会产生这样的问题,大家需要举一反三,做学问学知识要懂得反思总结。 一、前情回顾 先回顾下上次的知识点, 自动拆箱 实际调用的是intValue()方法 自动装 ... »

缓存中间件-Redis(二)

在上一篇中我们简单总结和介绍了Redis的几个方面 1.使用Redis背景 2.Redis通信多路复用的基本原理 3.Redis基本数据结构 4.Redis持久化方式 这一篇我们使用简单的业务场景来介绍Redis的分布式锁和集群 1.分布式锁 首先我们应该知道什么是分布式锁,用来做什么的,解决了什么 ... »

yuxl01 .NET

解析分布式系统的缓存设计

本文由浅入深,渐进式介绍缓存技术的基本原理。通过本文,可以让读者快速了解以下知识点:缓存是什么;为什么需要缓存;缓存有哪些主流技术,各自有什么特点,适用于什么场景;应该缓存哪些数据,缓存多久;如何淘汰数据;使用缓存有哪些常见问题以及如何应对这些问题。 ... »

vivotech

缓存中间件-Redis(一)

1.Redis介绍 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的 key-value 存储系统,是跨平台的非关系型数据库,Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可 ... »

yuxl01 .NET

分布式缓存--缓存与数据库一致性方案

1. 概述 缓存设计是应用系统设计中重要的一环,是通过空间换取时间的一种策略,达到高性能访问数据的目的;但是缓存的数据并不是时刻存在内存中,当数据发生变化时,如何与数据库中的数据保持一致,以满足业务系统要求,本篇将给出具体分析。 2. 强一致与最终一致性 所谓强一致,就是指系统在对外提供服务的过程中 ... »

Redis 缓存击穿(失效)、缓存穿透、缓存雪崩怎么解决?

原始数据存储在 DB 中(如 MySQL、Hbase 等),但 DB 的读写性能低、延迟高。 比如 MySQL 在 4 核 8G 上的 TPS = 5000,QPS = 10000 左右,读写平均耗时 10~100 ms。 用 Redis 作为缓存系统正好可以弥补 DB 的不足,「码哥」在自己的 M ... »

uniqueDong

基于Spring接口,集成Caffeine+Redis两级缓存

原创:微信公众号 码农参上,欢迎分享,转载请保留出处。 在上一篇文章Redis+Caffeine两级缓存,让访问速度纵享丝滑中,我们介绍了3种整合Caffeine和Redis作为两级缓存使用的方法,虽然说能够实现功能,但实现手法还是太粗糙了,并且遗留了一些问题没有处理。本文将在上一篇的基础上,围绕两 ... »

Django高级之-缓存

一 缓存介绍 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务器的压力. 缓存是将一些常用的数据保存内存或者me ... »

goOJBK

高并发下如何保证数据库和缓存的数据一致性?

前言 数据库和缓存(比如:redis)双写数据一致性问题,是一个跟开发语言无关的公共问题。尤其在高并发的场景下,这个问题变得更加严重。 我很负责的告诉你,该问题无论在面试,还是工作中遇到的概率非常大,所以非常有必要跟大家一起探讨一下。 今天这篇文章我会从浅入深,跟大家一起聊聊,数据库和缓存双写数据一 ... »

趣说 | 数据库和缓存如何保证一致性?

作者:小林coding 图解计算机基础网站:https://xiaolincoding.com/ 一天,老板说「最近公司的用户越来越多了,但是服务器的访问速度越来越差的,阿旺帮我优化下,做好了给你画个饼!」。 程序员阿旺听到老板口中的「画饼」后就非常期待,没有任何犹豫就接下了老板给的这个任务。 阿旺 ... »

xiaolincoding

使用缓存(Cache)的几种方式,回顾一下~~~

前言 如今缓存成为了优化网站性能的首要利器,缓存使用的好,不仅能让网站性能提升,让用户体验变好,而且还能节约成本(增加一台缓存服务器可能就节约好几台机器);那平时小伙伴们都使用哪些缓存方式呢?这里就来和小伙伴们一起来回顾一下。 正文 缓存的作用其实很明确,如下两方面: 提升数据的获取速度 通常用在获 ... »

Spring cache源码分析

Spring cache是一个缓存API层,封装了对多种缓存的通用操作,可以借助注解方便地为程序添加缓存功能。 常见的注解有@Cacheable、@CachePut、@CacheEvict,有没有想过背后的原理是什么?楼主带着疑问,阅读完Spring cache的源码后,做一个简要总结。 先说结论, ... »

Spring Cache缓存框架

一、序言 Spring Cache是Spring体系下标准化缓存框架。Spring Cache有如下优势: 缓存品种多 支持缓存品种多,常见缓存Redis、EhCache、Caffeine均支持。它们之间既能独立使用,也能组合使用。 平滑迁移 Spring内部支持的缓存,可实现无缝平滑迁移,无需修改 ... »

javazhishitupu Java EE

怎样用读写锁快速实现一个缓存?

1)SDK已经有管程了,不是可以解决所有的并发问题的吗,为什么还要有读写锁? 不同的场景下使用不同的锁效果是不一样的,我们的读写锁用在读多写少的场景下那是非常有用的。 2)读写锁是我们JAVA特有的吗?他有什么原则? 读写锁并不是java特有的,是通用的一个技术方案。读写锁的话有三个基本原则: 同一 ... »