
缓存中间件
文章平均质量分 83
闫同学鸭
让旷野天空放一片晴
展开
-
分布式锁:不同实现方式实践测评
Hello读者朋友们,今天打算分享一篇测评实践类的文章,用优雅的代码与真实的数据来讲述在分布式场景下,不同方式实现的分布式锁,分别探究每一种方式的性能情况与最终的优劣分析。原创 2022-11-26 19:41:35 · 732 阅读 · 16 评论 -
玩转MongoDB—搭建MongoDB集群
如题,本次玩转MongoDB我们从搭建集群开始,话说MongoDB一共有三种搭建集群的方式,但是由于版本更新,据说在4.0版本之后第一种方式,也就是主从复制的方式被遗弃掉了,大概是因为这种方式的效率不高吧,因为目前我们使用的是5.x版本,因此就不花时间讲解第一种方式了,在其他的文章上摘录了一下,可供大家参考。...原创 2022-07-01 08:01:03 · 2292 阅读 · 10 评论 -
玩转MongoDB—基本概念及初步使用
Hello 朋友们,本次我们介绍一种NoSQL数据库,也是当前除了Redis以外比较主流的非关系型数据库—MongoDB原创 2022-06-19 14:03:47 · 515 阅读 · 4 评论 -
一文搞懂不同方式Redis集群搭建
1 实验环境准备1.1 构建Redis的Docker镜像[root@iZ2ze4m2ri7irkf6h6n8zoZ redis]# docker pull redis[root@iZ2ze4m2ri7irkf6h6n8zoZ redis]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEredis latest f1b69原创 2022-02-27 15:16:36 · 730 阅读 · 2 评论 -
深入Redis数据结构和底层原理
1 概述Redis为什么能支持每秒钟十万级的高并发?基于内存的存取方式高效的数据结构单线程,使用多路I/O复用模型,非阻塞IO…其中一个重要的原因,就是Redis中高效的数据结构,因此我们就专门的来研究下Redis的核心数据结构,Go!2 五大基本数据结构分别是String、List、Set、ZSet、MapString类型:一个String类型的value最大可以存储512MList类型:list的元素个数最多为2^32-1个,也就是4294967295个。Set类型原创 2021-11-10 15:12:34 · 2885 阅读 · 3 评论 -
浅谈Redis实现分布式锁
1 回顾下单机JVM锁1.1 为什么要引入锁?因为,线程是进程的一个实体,同一进程下的多个线程可以进行资源的共享,多个线程共享一个资源时则会进行资源的竞争进而引发线程异常。无锁模式下资源不同步的体现:代码:public class Test1 { Ticket ticket = new Ticket(); private void sellTest() { ThreadPoolExecutor executor = new ThreadPoolExecutor(原创 2021-10-31 15:45:17 · 430 阅读 · 2 评论 -
分布式系统设计理论之一致性哈希
分布式系统设计理论之一致性哈希主要参考和围绕这篇论文讲解:Consistent Hashing1 问题引入什么是一致性哈希?为什么要用一致性哈希?2 一致性哈希算法出现之前的分布式系统设计例如系统需要构建分布式缓存,多个节点分别部署而形成的一个分布式集群,当有请求到来时进行负载均衡,具体的负载均衡方式就是将节点的ID(唯一标识)进行哈希值的取余运算,得到结果的机器就是进行请求处理的机器。上述方式存在的问题:当一个节点进行更换(增加或删除节点)时,原有的节点消失或增加新的节点,会导致多个请求原创 2021-10-16 20:06:07 · 299 阅读 · 0 评论 -
什么是缓存击穿、缓存穿透、缓存雪崩?如何解决?
1 缓存的作用和一般使用流程作用:减少服务器压力,增加请求承载量,快速响应请求等等。一般流程:2 缓存穿透概念:指缓存和数据库中都没有用户想要查询到的数据,并且不断进行请求,造成数据库承载部分压力。解决方法:接口校验:防止非法请求将缓存中key-value的value设置为null3 缓存击穿概念:指同一时间内大量缓存同时失效,导致请求全部转向数据库。解决方法:设置热点数据永不过期加锁,设置数据库为延时访问4 缓存雪崩概念:指同一时间内大量不同请求的缓存同时失效,原创 2021-10-11 15:33:51 · 278 阅读 · 1 评论