
Redis
文章平均质量分 85
jack xu1
stay hungry,stay foolish..
展开
-
经典大厂面试题——缓存穿透、缓存击穿、缓存雪崩
这里有两种处理方案,第一种就是拿不到锁就阻塞等待在这里,等待一段时间我们再去取缓存,但是在生产环境,我们一般是不会这样去用的,因为这里存在一个非常大的风险,就是我们系统既然用到了缓存,那这个请求量应该是比较大的,那你要阻塞在这里,那阻塞多久呢,那阻塞的这个时间会不会大量请求夯在这里,把整个RPC的连接池给打爆,针对这种情况我们更多的是采取返回一个默认值的方式,而不是让它直接阻塞等待在这里。,所以说他查询缓存不存在,就直接去查数据库,导致我们的数据库的压力非常大,这就是缓存穿透的场景。在业界也有比较成熟的。原创 2025-04-25 00:58:39 · 914 阅读 · 0 评论 -
docker安装redis
这个是关键配置,让redis不是无配置启动,而是加载容器内的conf文件,最终加载的是宿主机上的文件。到redis官网下载一下压缩包, http://www.redis.cn/download.html。:把宿主机配置好的redis.conf放到容器内的这个位置中。:把redis持久化的数据在宿主机内显示,做数据备份。:把容器内的6379端口映射到宿主机6666端口。一个是用来放配置文件的,一个是用来放数据文件的。至此就全部安装完毕了,小伙伴们快去试试吧~查看一下镜像已经拉下来了。原创 2023-08-27 20:23:18 · 548 阅读 · 0 评论 -
介绍几种常见的分布式锁写法
什么是分布式锁?大家好,我是jack xu,今天跟大家聊一聊分布式锁。首先说下什么是分布式锁,当我们在进行下订单减库存,抢票,选课,抢红包这些业务场景时,如果在此处没有锁的控制,会导致很严重的问题。学过多线程的小伙们知道,为了防止多个线程同时执行同一段代码,我们可以用 synchronized 关键字或 JUC 里面的 ReentrantLock 类来控制,但是目前几乎任何一个系统都是部署多台机器的,单机部署的应用很少,synchronized 和 ReentrantLock 发挥不出任何作用,此时就需要原创 2020-06-14 12:59:59 · 549 阅读 · 0 评论 -
一个经典面试题:如何保证缓存与数据库的双写一致性?
缓存是互联网高并发系统里常用的组件,由于多增加了一层,如果没有正确的使用效果可能适得其反,诸如“缓存是删除还是更新?”,“先操作数据库还是先操作缓存?”都是些老生常谈的话题,今天我们就来聊一聊缓存与数据库的双写一致性的解决方案。Cache Aside Pattern在一开始先科普下最经典的缓存+数据库读写的模式,就是 Cache Aside Pattern。读的时候,先读缓存,缓存没有的话...原创 2020-04-26 21:30:58 · 523 阅读 · 0 评论 -
通俗易懂讲布隆过滤器
大家好,我是jack xu,不知道从什么时候开始,本来默默无闻的布隆过滤器一下子名声大燥,在面试中面试官问到怎么避免缓存穿透,你的第一反应可能就是布隆过滤器,缓存穿透=布隆过滤器成了标配,但具体什么是布隆过滤器,怎么使用布隆过滤器不是很清楚,那今天我们就来把他说清楚,讲明白。。缓存穿透大家看下这幅图,用户可能进行了一次条件错误的查询,这时候redis是不存在的,按照常规流程就是去数据库找了,...原创 2020-04-19 17:07:17 · 1060 阅读 · 1 评论