码哥字节

其他

Redis 内存满了怎么办?这样置才正确!

中如何选择合适的淘汰策略和设置最佳缓存大小给大家。淘汰执行过程如下图所示:redis-eviction客户端发送新命令到服务端;服务端收到客户端命令,Redis
2022年4月24日
其他

Redis 的过期数据会被立马删除么?

内存耗尽,怎么破?这个问题问得好,答案是走内存淘汰机制。今天就到这里,说太多的话,大家容易在知识的海量里呛死,保命要紧,至于内存淘汰机制详情,请看下回分解。点击下方名片关注,回复资料获取「码哥
2022年4月11日
其他

16 张图解 | 淘宝 10年架构演进

大家好,我是「码哥」,我看了很多阿里相关的技术文章和书籍,比如《淘宝技术这十年》,写得太tm精彩了。之前有读者留言让写一篇大型网站的架构演进过程,发现下面这篇文章讲解得很详细,特此分享给大家,相信看完会有所收获。文章在介绍一些基本概念后,按照以下过程阐述了整个架构的演进过程:单机架构第一次演进:Tomcat与数据库分开部署第二次演进:引入本地缓存和分布式缓存第三次演进:引入反向代理实现负载均衡第四次演进:数据库读写分离第五次演进:数据库按业务分库第六次演进:把大表拆分为小表第七次演进:使用LVS或F5来使多个Nginx负载均衡第八次演进:通过DNS轮询实现机房间的负载均衡第九次演进:引入NoSQL数据库和搜索引擎等技术第十次演进:大应用拆分为小应用第十一次演进:复用的功能抽离成微服务第十二次演进:引入企业服务总线ESB屏蔽服务接口的访问差异第十三次演进:引入容器化技术实现运行环境隔离与动态服务管理第十四次演进:以云平台承载系统原文作者:huashiou,链接:https://segmentfault.com/a/11900000186261631.
2022年4月10日
其他

Redis 高手心法.pdf 发布

方便大家阅读和学习。关注公众号并回复「资料」就可以获取在整个文章系列中,我主要分享如何建立一个完整的知识框架和架构体系,深层次的掌握
2022年4月4日
其他

硬核 | Redis 布隆(Bloom Filter)过滤器原理与实战

官方文档上面的例子:https://oss.redis.com/redisbloom/。大家遇到问题一定要耐心的从官方文档寻找答案,培养自己的阅读和定位问题的能力。Redission
2022年3月21日
其他

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

分钟)。这样一来,就不会导致同一时刻热点数据全部失效,同时过期时间差别也不会太大,既保证了相近时间失效,又能满足业务需求。接口限流当访问的不是核心数据的时候,在查询的方法上加上接口限流保护。比如设置
2022年3月8日
其他

别再用 Redis List 实现消息队列了,Stream 专为队列而生

...]该指令可以同时对多个流进行读取,每个心法对应含义如下:COUNT:表示每个流中最多读取的元素个数;BLOCK:阻塞读取,当消息队列没有消息的时候,则阻塞等待,
2022年2月28日
其他

Redis 突然变慢了如何排查并解决?

异步删除。关注「码哥字节」。阅读后如有收获请「点赞、分享、收藏」,谢谢支持.读者群已经开通,群里与各个大厂的大佬,不仅可以内推也可以学习。添加「码哥」个人微信,回复「加群」一起成长!Redis
2022年2月21日
其他

写文章搭建框架、排版、画图和配色竟有这么多讲究!

mysql;这些我们都需要注意。另外,手机上也不适合大段大段的代码粘贴,我们需要尽可能的去图解主要原理和类的关系,只贴关键的代码。如果一定要贴很多代码,那就上传到
2022年1月29日
其他

Redis 使用 List 实现消息队列的利与弊

的列表(List)是一种线性的有序结构,可以按照元素被推入列表中的顺序来存储元素,能满足「先进先出」的需求,这些元素既可以是文字数据,又可以是二进制数据。LPUSH生产者使用
2022年1月15日
其他

Redis 分布式锁的正确实现原理演化历程与 Redisson 实战总结

在实际搜索应用中涉及的相关技术,帮助读者全面了解搜索引擎,从而提高开发水平。最后,硬核文章原创不易,阅读有所收获求「点赞」和「收藏」并设置「星标」接收文章推送,么么哒。往期推荐腾讯二面:Redis
2021年11月29日
其他

腾讯二面:Redis 事务支持 ACID 么?

鬼吹灯之《云南虫谷》中的摸金校尉有句话叫「合则生,分则死」,为了寻找雮尘珠他们三人分工明确、齐心协力共进退方可成功。
2021年10月18日
其他

Redis 很屌,不懂使用规范就糟蹋了

当某一个时刻出现大规模的缓存失效的情况,那么就会导致大量的请求直接打在数据库上面,导致数据库压力巨大,如果在高并发的情况下,可能瞬间就会导致数据库宕机。
2021年9月26日
自由知乎 自由微博
其他

原创目录

Boot使用@Async实现异步调用了解这些,你就可以在Spring启动时为所欲为了7.2原理了解这些,你就可以在Spring启动时为所欲为了待续08PARTHttpHTTP
2021年9月9日
其他

面霸篇:高频 Java 基础问题(核心卷一)

之前,清理软引用指向的对象。软引用通常用来实现内存敏感的缓存,如果还有空闲内存,就可以暂时保留缓存,当内存不足时清理掉,这样就保证了使用缓存的同时,不会耗尽内存。弱引用ThreadlocalMap
2021年8月30日
其他

十二时辰篇:互联网程序员没有七夕

辰时怎能忘了「福报」?从今天起,做一个幸福的猿猴。劈柴、喂马、做大保健。从明天起,关心粮食和外卖。我有一座房子,面朝大海,春暖花开。从明天起,和每一个产品经理通信,告诉他们你行你上,我不干了。那幸福的闪电告诉我,我将告诉每一个憨批。我们删库跑路去旅游吧,给每一条河流、每一座山取一个温暖的名字。「叮铃叮铃」,闹钟响了……巳时「在路上」今天又拒绝了
2021年8月12日
其他

Redis 6.0 新特性篇:Client Side Cache 是嘛玩意?

https://github.com/antirez/redis/blob/unstable/src/tracking.c。
2021年8月6日
其他

Redis 新特性篇:多线程模型解读

所有客户端命令最后还需要回到主线程去执行,因此对多核的利用率并不算高,而且每次主线程都必须在分配完任务之后忙轮询等待所有
2021年7月19日
其他

给 1 万个粉丝的一封信

大号投稿」方式,获取到了前期的种子粉丝。这个过程的艰辛只有自己知道,大号需要转载保持更新频率,并转载文章用来防止由于经常发广告导致粉丝取关。然而,转载获取粉丝的转换率极低,100
2021年7月12日
其他

Redis 实战篇:通过 Geo 类型实现附近的人邂逅女神

经纬度是经度与纬度的合称组成一个坐标系统。又称为地理坐标系统,它是一种利用三度空间的球面来定义地球上的空间的球面坐标系统,能够标示地球上的任何一个位置(小数点后7位,精度可以到1厘米)。
2021年7月6日
其他

Redis 面霸篇:从高频问题透视核心原理

当主从库完成了全量复制,它们之间就会一直维护一个网络连接,主库会通过这个连接将后续陆续收到的命令操作再同步给从库,这个过程也称为基于长连接的命令传播,使用长连接的目的就是避免频繁建立连接导致的开销。
2021年6月21日
其他

思聪:别人笑我是舔狗,我笑他人看不穿

想必定是撕葱在刻苦学习如何成为花丛老手,加入了“职业渣男海王”等技术交流群,在里面交流各种“撩人套路”“实战满分技巧”……
2021年6月17日
其他

十二时辰篇:这该死的 996

凡事总需研究,才会明白。古来时常人为财死鸟为食亡,我翻开历史一查,这历史没有年代,歪歪斜斜的每页上都写着“努力奋斗,财富自由”几个字。
2021年6月11日
其他

Redis 实战篇:巧用数据类型实现亿级数据统计

所以,可以专门部署一个集群用于统计,让它专门负责聚合计算,或者是把数据读取到客户端,在客户端来完成聚合统计,这样就可以规避由于阻塞导致其他服务无法响应。
2021年6月8日
其他

Java 并发篇:别再纠结线程池大小,没有固定公式

点击上方蓝色“码哥字节”,选择“设为星标”来源:juejin.cn/post/6948034657321484318线程数和CPU利用率的小测试线程数和CPU利用率的小总结线程数规划的公式真实程序中的线程数附录Java
2021年6月4日
其他

Redis 实战篇:巧用 Bitmap 实现亿级海量数据统计

通常情况下,我们面临的用户数量以及访问量都是巨大的,比如百万、千万级别的用户数量,或者千万级别、甚至亿级别的访问信息。
2021年5月24日
其他

事务篇:七种分布式事务方案正确使用姿势

BASE理论是对CAP中的一致性和可用性进行一个权衡的结果,理论的核心思想就是:我们无法做到强一致,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(Eventual
2021年5月21日
其他

讲解 Zookeeper 的五个核心知识点

znode(目录节点)。和文件系统一样,我们能够自由的增加、删除znode,在一个znode下增加、删除子znode,唯一的不同在于znode是可以存储数据的。默认有四种类型的znode:
2021年5月19日
其他

高并发场景下,到底先更新缓存还是先更新数据库?

应用首先会判断缓存是否有该数据,缓存命中直接返回数据,缓存未命中即缓存穿透到数据库,从数据库查询数据然后回写到缓存中,最后返回数据给客户端。
2021年5月10日
其他

Linux 写时复制机制原理

复制并重新映射到新的物理内存后,父子进程的虚拟内存就映射到不同的物理内存上,这时父子进程都可以对内存进行写操作而互不影响,所以需要把父子进程的内存读写权限设置为可读写。
2021年5月7日
其他

InnoDB解决幻读的方案--LBCC&MVCC

此处我们演示的是update的情况,对于删除的情况可以认为是update的特殊情况,会将版本链上最新的数据复制一份,然后将trx_id改成删除操作的trx_id,同时在该条记录的头信息(record
2021年5月6日
其他

Redis 高可用篇:Cluster 集群能支撑的数据有多大?

错误(负载均衡,数据已经迁移到其他实例上):当客户端将一个键值对操作请求发送给某个实例,而这个键所在的槽并非由自己负责的时候,该实例会返回一个
2021年4月22日
其他

我用 Kafka 两年踩过的那些非比寻常的坑

根据以往积累的经验,我直接看了kafka的topic的数据,果然上面消息有积压,但这次每个partition都积压了十几万的消息没有消费,比以往加压的消息数量增加了几百倍。这次消息积压得极不寻常。
2021年4月12日
其他

Kafka原理篇:图解kakfa架构原理

种状态:NonExistentPartition:该状态表示分区没有被创建过或创建后被删除了。NewPartition:分区刚创建后,处于这个状态。此状态下分区已经分配了副本,但是还没有选举
2021年4月9日
其他

Redis 6.X Cluster 集群搭建

注意指定每个节点配置文件,如果不指定配置文件会默认使用src下的配置。创建集群进入任意一个节点,执行以下指令创建集群指令如下:redis-6.0.9/src/redis-cli
2021年4月5日
其他

Redis 高可用篇:你管这叫 Sentinel 哨兵集群原理

down-after-milliseconds。因为这个值在不同的哨兵实例上配置不一致,导致哨兵集群一直没有对有故障的主库形成共识,也就没有及时切换主库,最终的结果就是集群服务不稳定。
2021年4月1日
其他

Redis 6.X Sentinel 哨兵集群搭建

sentinel26380/sentinel.conf./redis-6.0.9/src/redis-sentinel
2021年3月30日
其他

Kafka性能篇:为何Kafka这么"快"?

日志篇:无畏宕机快速恢复的杀手锏文章如有错误,感谢指正,关注我,获取真正的硬核知识点。另外技术读者群也开通了,后台回复「加群」获取「码哥字节」作者微信,一起成长交流。以上就是
2021年3月22日
其他

Redis 高可用篇:你管这叫主从架构数据同步原理?

当主从库完成了全量复制,它们之间就会一直维护一个网络连接,主库会通过这个连接将后续陆续收到的命令操作再同步给从库,这个过程也称为基于长连接的命令传播,使用长连接的目的就是避免频繁建立连接导致的开销。
2021年3月11日
其他

图解 | 搞定分布式,程序员进阶之路

的消费者按照名称的字典序排序,然后为每个消费者划分固定的分区范围,如果不够平均分配,那么字典序靠前的消费者会被多分配一个分区。RoundRobinAssignorRoundRobinAssignor
2021年3月3日
其他

Redis 日志篇:无畏宕机快速恢复的杀手锏

函数,将一些数据写入到文件的时候,操作系统通常会将写入数据暂时保存在一个内存缓冲区里面,等到缓冲区的空间被填满、或者超过了指定的时限之后,才真正地将缓冲区中的数据写入到磁盘里面。
2021年2月22日
其他

Redis 核心篇:唯快不破的秘密

但是,使用多线程后,没有良好的系统设计,可能会出现如下图所示的场景,增加了线程数量,前期吞吐量会增加,再进一步新增线程的时候,系统吞吐量几乎不再新增,甚至会下降!
2021年1月26日
其他

了解这些,你就可以在Spring启动时为所欲为了

}}并且,多个CommandLineRunner实现,可以通过@Order来控制它们的执行顺序。SmartLifecycle还有一种更高级的方法来实现我们的逻辑。这可以
2021年1月12日
其他

synchronized 王的后宫总管,线程是王妃

}}每次调用stringBuffer.append方法都需要加锁和解锁,如果虚拟机检测到有一系列连串的对同一个对象加锁和解锁操作,就会将其合并成一次范围更大的加锁和解锁操作,即在第一次
2020年12月17日
其他

打工人,从 JMM 透析 volatile 与 synchronized 原理

类型的变量,并且同时对它们进行读取和修改操作,那么某些线程可能会读取到一个既非原值,也不是其他线程修改值的代表了“半个变量”的数值。但由于目前各种平台下的商用虚拟机几乎都选择把
2020年11月2日
其他

从面试角度一文学完 Kafka

等不一样,消息中间件采用分布式中间代理的方式进行通信。如图所示,采用了消息中间件之后,上游业务系统发送消息,先存储在消息中间件,然后由消息中间件将消息分发到对应的业务模块应用(分布式生产者
2020年10月12日
其他

终极解密输入网址按回车到底发生了什么

头,数据包才能够正确传输,到了目的地后把头部去掉,就可以拿到真正的数据。这个很容易理解,设置起点与终点,不同协议贴上不同的头部,到了对应目的地就拆下这个头部,提取真正的数据。HTTP报文与
2020年10月9日
其他

OLAP 数据平台 Druid 第一步,编写 Spec 配置

Numbers数字类型的数据应该作为数字维度还是字符串维度?数字维度相对于字符串维度有以下优势和劣势:优势:数字需要更小的存储空间,并且在读取该列时需要更小的开销。劣势:数字维度没有索引,所以按此列
2020年9月27日
其他

高性能解决线程饥饿的利器 StampedLock

的写锁模式,同一时刻有且只有一个写线程获取锁资源;Reading(悲观读锁):readLock方法,允许多个线程同时获取悲观读锁,悲观读锁与独占写锁互斥,与乐观读共享。Optimistic
2020年9月21日
其他

透视HTTPS建造固若金汤的城堡

“密钥交换”。这个很容易理解,对称加密的密钥在飞鸽传书过程中被打鸟的敌军捕获窃取,那么就能随意加解密收发作战密报数据了,诸葛亮的密报没有机密可言。所以非对称加密诞生了。由两个密钥组成,分别是
2020年9月14日