随笔分类 -  redis

摘要:Spring Boot2 + Redis + RabbitMQ + Elasticsearch 视频 https://edu.csdn.net/course/detail/20536?utm_medium=distribute.pc_relevant.none-task-course-BlogCom 阅读全文
posted @ 2021-02-25 10:15 YoungDeng 阅读(181) 评论(0) 推荐(0) 编辑
摘要:在分布式系统中,设计思路很重要 先来讲讲大概思路,代码都是可以改的但思路大同小异。先缓存商品,加载到redis,秒杀场景下如果直接访问关系型数据库,会引起雪崩效应,系统瘫痪,所以就改为访问redis,这里是减库存的时候先减redis,然后异步去减DB。就可以防止系统崩溃。 正题 先看工程目录 pom 阅读全文
posted @ 2021-02-25 10:11 YoungDeng 阅读(769) 评论(0) 推荐(1) 编辑
摘要:1.安装RabbitMQ docker安装:https://blog.csdn.net/qq_33612228/article/details/103732890 windows安装:https://blog.csdn.net/m0_37034294/article/details/82839494 阅读全文
posted @ 2021-02-25 09:42 YoungDeng 阅读(2439) 评论(0) 推荐(0) 编辑
摘要:上一篇基于redis的list实现了一个简单的消息队列:玩转redis-简单消息队列 源码地址 使用demo 产品经理经常说的一句话,我们不光要有X功能,还要Y功能,这样客户才能更满意。同样的,只有简单消息队列是不够的,还要有延时消息队列才能算是一个完整的消息队列。 看看redis的命令,放眼望去, 阅读全文
posted @ 2020-05-13 18:09 YoungDeng 阅读(999) 评论(0) 推荐(0) 编辑
摘要:使用go语言基于redis写了一个简单的消息队列源码地址使用demo redis的 list 非常的灵活,可以从左边或者右边添加元素,当然也以从任意一头读取数据 添加数据和获取数据的操作也是非常简单的LPUSH 从左边插入数据RPUSH 大右边插入数据LPOP 从左边取出一个数据RPOP 从右边取出 阅读全文
posted @ 2020-05-13 18:08 YoungDeng 阅读(222) 评论(0) 推荐(0) 编辑
摘要:引言 最近项目上线的频率颇高,连着几天加班熬夜,身体有点吃不消精神也有些萎靡,无奈业务方催的紧,工期就在眼前只能硬着头皮上了。脑子浑浑噩噩的时候,写的就不能叫代码,可以直接叫做Bug。我就熬夜写了一个bug被骂惨了。 由于是做商城业务,要频繁的对商品库存进行扣减,应用是集群部署,为避免并发造成库存超 阅读全文
posted @ 2020-05-13 17:39 YoungDeng 阅读(34135) 评论(12) 推荐(5) 编辑
摘要:一般我们对缓存读操作的时候有这么一个固定的套路: 如果我们的数据在缓存里边有,那么就直接取缓存的。 如果缓存里没有我们想要的数据,我们会先去查询数据库,然后将数据库查出来的数据写到缓存中。 最后将数据返回给请求 代码例子: 1 @Override 2 public R selectOrderById 阅读全文
posted @ 2020-05-11 14:25 YoungDeng 阅读(703) 评论(0) 推荐(0) 编辑
摘要:官网的说法 我们先来认真看一下官网的说法。翻译过来大意如下:CPU并不是您使用Redis的瓶颈,因为通常Redis要么受内存限制,要么受网络限制。例如,使用在一般Linux系统上运行的流水线Redis每秒可以发送一百万个请求,因此,如果您的应用程序主要使用O(N)或O(log(N))命令,则几乎不会 阅读全文
posted @ 2020-05-11 14:07 YoungDeng 阅读(1695) 评论(0) 推荐(0) 编辑
摘要:说起来,可能有些小伙伴会不相信,我是第一次用 Redis,真的。因为公司小,业务量小,Redis 根本派不上用场。不过,最近打算把系统升级一下,顺带把当下时髦的技术入个门,“与时俱进”嘛,虽然进的有“一点点”晚(注意双引号)。 作为一名富有责任心的技术博主,我觉得有必要把我入门 Redis 的过程分 阅读全文
posted @ 2020-05-09 14:19 YoungDeng 阅读(157) 评论(0) 推荐(0) 编辑
摘要:引言 该文是对《分布式之数据库和缓存双写一致性方案解析》,一文的补充。博主在该文中,提到了这么一句话 应该没人问我,为什么没有先更新缓存,再更新数据库这种策略。 博主当时觉得,这种更新策略比较简单,没必要多做说明,结果太多人留言给博主,问我为什么不说这套方案?好吧,博主先跟大家道个歉,是我的问题。所 阅读全文
posted @ 2020-05-09 11:02 YoungDeng 阅读(181) 评论(0) 推荐(0) 编辑
摘要:正文 博主本来觉得,《分布式之数据库和缓存双写一致性方案解析》,一文已经十分清晰。然而这一两天,有人在微信上私聊我,觉得应该要采用 先删缓存,再更新数据库,再删缓存 这一方案作为缓存更新策略,而不是先更新数据库,再删缓存。并且搬出了两篇大佬的文章,《Cache Aside Pattern》,《缓存与 阅读全文
posted @ 2020-05-09 11:01 YoungDeng 阅读(173) 评论(0) 推荐(0) 编辑
摘要:引言 redis大家在项目中经常会使用到。官网也提供了多语言的客户端供大家操作redis,如下图所示但是,大家有思考过,这些语言操作redis背后的原理么?其实,某些大神会说 只要按照redis的协议,发送指定数据给redis,监听返回值即可。 确实,本质原理就是如上面那句话所说。博主也是以这种思路 阅读全文
posted @ 2020-05-09 10:59 YoungDeng 阅读(499) 评论(0) 推荐(0) 编辑
摘要:引言 为什么写这篇文章? 博主的《分布式之消息队列复习精讲》得到了大家的好评,内心诚惶诚恐,想着再出一篇关于复习精讲的文章。但是还是要说明一下,复习精讲的文章偏面试准备,真正在开发过程中,还是脚踏实地,一步一个脚印,不要投机取巧。考虑到绝大部分写业务的程序员,在实际开发中使用redis的时候,只会s 阅读全文
posted @ 2020-05-09 10:57 YoungDeng 阅读(118) 评论(0) 推荐(0) 编辑
摘要:看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还 阅读全文
posted @ 2020-05-09 10:55 YoungDeng 阅读(355) 评论(0) 推荐(0) 编辑
摘要:引言 为什么写这篇文章? 首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又或者是先删除缓存,再更新数据库,其实大家存在很大的争议。目前没有一篇全面的博客, 阅读全文
posted @ 2020-05-09 10:54 YoungDeng 阅读(141) 评论(0) 推荐(0) 编辑
摘要:什么是缓存击穿 在谈论缓存击穿之前,我们先来回忆下从缓存中加载数据的逻辑,如下图所示 因此,如果黑客每次故意查询一个在缓存内必然不存在的数据,导致每次请求都要去存储层去查询,这样缓存就失去了意义。如果在大流量下数据库可能挂掉。这就是缓存击穿。场景如下图所示: 我们正常人在登录首页的时候,都是根据us 阅读全文
posted @ 2020-05-09 10:52 YoungDeng 阅读(717) 评论(0) 推荐(1) 编辑
摘要:引言 讲了几天的数据库系列的文章,大家一定看烦了,其实还没讲完。。。(以下省略一万字)。今天我们换换口味,来写redis方面的内容,谈谈热key问题如何解决。其实热key问题说来也很简单,就是瞬间有几十万的请求去访问redis上某个固定的key,从而压垮缓存服务的情情况。其实生活中也是有不少这样的例 阅读全文
posted @ 2020-05-09 10:16 YoungDeng 阅读(498) 评论(0) 推荐(0) 编辑
摘要:引言 (本文改编自生活真实案例,如有类同,绝不是巧合!)端午节,烟哥正在一边愉快的学习....突然,微信一阵抖动。原来是老刘呼唤烟哥!善良的烟哥本以为人家是要约我出去玩!然而,打开微信一看,出现下图聊天记录于是本文的主题就这么展开了。由于我需要迅速让老刘明白,这种问题的回答套路,所以我回答的时候,教 阅读全文
posted @ 2020-05-09 10:14 YoungDeng 阅读(215) 评论(0) 推荐(0) 编辑
摘要:引言 我在《那些年用过的Redis集群架构(含面试解析)》一文里提到过,现在redis集群架构,redis cluster用的会比较多。如下图所示对于客户端请求的key,根据公式HASH_SLOT=CRC16(key) mod 16384,计算出映射到哪个分片上,然后Redis会去相应的节点进行操作 阅读全文
posted @ 2020-05-09 09:51 YoungDeng 阅读(3324) 评论(1) 推荐(1) 编辑
摘要:JedisPool的配置参数大部分是由JedisPoolConfig的对应项来赋值的。 maxActive:控制一个pool可分配多少个jedis实例,通过pool.getResource()来获取;如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时poo 阅读全文
posted @ 2020-05-07 15:00 YoungDeng 阅读(6282) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示