Redis
文章平均质量分 81
记录redis学习过程
会说话的皮卡丘
当初耿耿于怀的东西现在也没法放下
展开
-
redis缓存一致性以及解决方案
首先要到redis里面读取缓存,如果没有缓存,那么就到mysql里面去取数据,并且将其放置在缓存中关于解决缓存一致性的问题,不难想到主要有两种解决方案,**双更模式:**双更模式,顾名思义就是更新两次,一次更新redis,一次更新mysql不难想到,如果我们先更新redis,再更新mysql的话,是不是就可以保证每次缓存中的数据都是最新的了?但是这样做是有问题的,比如如果我们更新mysql的时候失败了怎么办?更新数据库可能会失败,发生了回滚。原创 2022-11-26 21:04:40 · 2348 阅读 · 0 评论 -
Redis:主从同步、哨兵、集群
从上面可以看到,主从同步并没有一个自动的管理机制,当出现主服务器宕机的情况,需要人工干预来进行恢复,但是如果主从服务器数量庞大,又或是因为高并发导致的大量崩溃,这时需要的时间和难度都是非常大的,于是Redis中又引入了**哨兵模式(Sentinel)**来作为解决方案,将管理由人工转向哨兵,使得Redis具有自动容灾恢复的能力。负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;原创 2022-10-03 17:32:57 · 149 阅读 · 0 评论 -
Redis:缓存雪崩,缓存击穿,缓存穿透,缓存预热
缓存雪崩指的是在短时间内,有大量缓存的键同时过期,由于缓存过期,导致此时所有的请求就直接查询数据库,而数据库很难抵挡这样巨大的压力,严重情况下就会导致数据库被大流量打死,直接宕机。缓存雪崩的解决方法有以下几种,为了避免缓存同时过期,,使失效时间分散开来,加锁排队可以起到缓冲的作用,防止大量请求同时操作数据库,但是也正因为如此也减少了吞吐量,导致响应时间变慢,用户体验变差。,即加入一个本地缓存作为备案,当Redis缓存失效后就暂时使用本地缓存进行代替,避免直接访问数据库。,有更新操作时直接更新缓存即可。原创 2022-10-03 16:06:30 · 240 阅读 · 0 评论 -
布隆过滤器
通常我们会遇到很多要判断一个元素是否在某个集合中的业务场景,一般想到的是将集合中所有元素保存起来,然后通过比较确定。但是随着集合中元素的增加,我们需要的存储空间也会呈现线性增长,最终达到瓶颈。当有变量被加入集合时,通过 K 个映射函数将这个变量映射成位图中的 K 个点,把它们置为 1(假定有两个变量都通过 3 个映射函数)。在程序的世界中,布隆过滤器是程序员的一把利器,利用它可以快速地解决项目中一些比较棘手的问题。一个元素如果判断结果为存在的时候元素不一定存在,但是判断结果为不存在的时候则一定不存在。原创 2022-10-03 15:52:24 · 678 阅读 · 0 评论 -
JAVA学习实战 reactor线程模型
但是随着连接数的增多,问题传统IO就不行了。同步非阻塞,服务器实现模式为一个请求一个线程,每个线程亲自处理io,但有另外的线程轮询检查是否io准备完毕,不必等待io完成,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。异步非阻塞,服务器实现模式为一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理,每个线程不必亲自处理io,而是委派os来处理,并且也不需要等待io完成了,如果完成后,os会通知的。原创 2022-09-18 20:07:34 · 882 阅读 · 0 评论