文章 2024-07-15 来自:开发者社区

深入理解后端开发中的缓存策略

在后端开发领域,缓存是一种常用的技术手段,用以提升应用的性能和响应速度。缓存的基本思想是将计算成本高或者访问频繁的数据临时存储起来,当再次需要这些数据时,可以直接从缓存中获取,从而避免了重复的计算或远程数据请求。 缓存的类型多种多样,根据其存放位置和作用范围可以分为客户端缓存、服务器端缓存、数据库缓存等。其中&#...

文章 2024-06-24 来自:开发者社区

后端开发中缓存的作用以及基于Spring框架演示实现缓存

缓存的作用及演示 现在我们使用的程序都是通过去数据库里拿数据然后展示的 长期对数据库进行数据访问 这样数据库的压力会越来越大 数据库扛不住了 创建了一个新的区域 程序访问去缓存 缓存区...

后端开发中缓存的作用以及基于Spring框架演示实现缓存
文章 2024-05-22 来自:开发者社区

【后端面经】【缓存】36|Redis 单线程:为什么 Redis 用单线程而 Memcached 用多线程?-- Redis多线程

你这样介绍整个设计。 当Redis启用了多线程之后,里面的主线程就要负责接收事件、创建连接、执行命令。Redis的IO线程就负责读写数据。 我用一个请求的处理过程来解释一下整个设计。当客户端发出请求的时候,主线程会收到一个可读的事件,于是它把对应的客户端丢掉可读的客户端列表。一个IO线程会被安排读写这个客户端发来的命令,并且解析好。紧接着主线程会执行 IO 线程解析好的命令,并且把响...

【后端面经】【缓存】36|Redis 单线程:为什么 Redis 用单线程而 Memcached 用多线程?-- Redis多线程
文章 2024-05-21 来自:开发者社区

【后端面经】【缓存】36|Redis 单线程:为什么 Redis 用单线程而 Memcached 用多线程?-- Memcache + Redis 多线程

为什么Memcache使用多线程 回答两者的优缺点,再随便补充一点个人理解就可以。 先回答Redis使用单线程模式的原因。 Redis使用单线程模式的理由有很多。首先有两个显著的优点:不会引入上下文切换的开销,也没有多线程访问资源的竞争问题。其次,Redis是一个内存数据库,操作很快,所以它的性能瓶颈只可能出现...

文章 2024-05-20 来自:开发者社区

【后端面经】【缓存】36|Redis 单线程:为什么 Redis 用单线程而 Memcached 用多线程?epoll、poll和select + Reactor模式

epoll、poll和select 在面试中,这三者有时候会一起问,也就是让你分析三种模型,并且解释三者的优劣。 先来看select,发起select调用的时候会传给select一堆代表连接的文件描述符,内核会帮你检查这些文件描述符。 它和epoll的区别是,你必须发起select调用,内核才会一...

【后端面经】【缓存】36|Redis 单线程:为什么 Redis 用单线程而 Memcached 用多线程?epoll、poll和select + Reactor模式
文章 2024-05-19 来自:开发者社区

【后端面经】【缓存】36|Redis 单线程:为什么 Redis 用单线程而 Memcached 用多线程?--epoll调用和中断

再介绍一下epoll的基本结构和系统调用 epoll里有两个关键结构。一个是红黑树,每一个节点都代表了一个文件描述符;另外一个是双向链表,也叫做就绪列表。 为了维护epoll的结构,有三个关键的系统调用。 epoll_create:也就是创建一个epoll结构 epoll_ctl:管理epoll里面那些文件描述...

文章 2024-05-18 来自:开发者社区

【后端面经】【缓存】36|Redis 单线程:为什么 Redis 用单线程而 Memcached 用多线程?

今天来探究下Redis高性能的原因。 Redis是单线程的含义 在学习Redis的时候肯定听说过一句话:Redis是单线程的。实际上,Redis并不是单线程的。业界说Redis是单线程的,是指它在处理命令的时候,是单线程的。在Redis6.0之前,Redis的IO也是单线程的,但是在6.0之后也改成了多线程。 但...

【后端面经】【缓存】36|Redis 单线程:为什么 Redis 用单线程而 Memcached 用多线程?
文章 2024-05-17 来自:开发者社区

【后端面经】【缓存】35|缓存问题:怎么解决缓存穿透、击穿和雪崩问题?--主从切换方案

亮点方案 不管是换成你穿透、击穿还是雪崩,归根结底都是请求都落到了数据库上。除了这三个异常,Redis本身也可能崩溃,又或者因为网络问题连不上这个集群。集群互为备份这个亮点方案可以很好的解决这个问题。 很多大厂会用一些异地多活的方案,就是使用两个 Redis 集群,然后两个集群之间要保持数据同步。那么其中一个 Redis 集群...

【后端面经】【缓存】35|缓存问题:怎么解决缓存穿透、击穿和雪崩问题?--主从切换方案
文章 2024-05-16 来自:开发者社区

【后端面经】【缓存】35|缓存问题:怎么解决缓存穿透、击穿和雪崩问题?---解决缓存击穿和雪崩、限流

解决缓存击穿 解决缓存击穿拾很容易的,只需要用到我们在缓存模式里面提到的singleflight模式。也就是说,就算是一个热点数据,当几百个请求缓存未命中的时候,在singleflight模式下,也只有一个请求会真的去查询数据,剩下的都在等着这个请求查询回来的结果。 解决缓存雪崩 缓存雪崩也很容易解决ÿ...

【后端面经】【缓存】35|缓存问题:怎么解决缓存穿透、击穿和雪崩问题?---解决缓存击穿和雪崩、限流
文章 2024-05-15 来自:开发者社区

【后端面经】【缓存】35|缓存问题:怎么解决缓存穿透、击穿和雪崩问题?---解决缓存穿透

解决缓存穿透 缓存穿透是因为数据本身不存在而引起的,所以我们就要想办法在确认数据不存在之后,避免下一次查询再次落到数据库上。这里有两种解决思路。 回写特殊值 第一种思路是在缓存未命中,而且数据库也没有的情况下,往缓存里写入一个特殊的值。这个值就是标记数据不存在。那么下一次查询请求过来的时候,看到这个特殊值,就知道...

【后端面经】【缓存】35|缓存问题:怎么解决缓存穿透、击穿和雪崩问题?---解决缓存穿透

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。