图
图
图
1. 概述 在开始本文之前,先推荐看一篇干货 《你应该如何正确健壮后端服务?》 。 限流,无论在系统层面,还是在业务层面,使用都非常广泛。例如说: 【业务】为了避免恶意的灌水机或者用户,限制每分钟至允许回复 10 个帖子。 【系统】为了避免服务系统被大规模调用,超过极限,限制每个调用方只允许每秒调用 100 次。 限流算法,常用的分成四种: 每一种的概念,推荐看看 《计...
本文基于 Redisson 3.11.4-SNAPSHOT 版本,望知悉。 可能有些胖友不是很了解 Redisson ,可以看看 Redis 客户端 Redisson 。 1. 依赖工具 Maven Git JDK IntelliJ IDEA 另外,胖友需要启动一个 Redis 节点。例如说,艿艿使用默认配置,在 127.0.0.1:6379 启动了一个。 2....
1. 概述 在 《精尽 Redisson 源码分析 —— 可重入分布式锁 ReentrantLock》 中,艿艿臭长臭长的分享了 Redisson 是如何实现可重入的 ReentrantLock 锁,一切看起来很完美,我们能够正确的加锁,也能正确的释放锁。但是,我们来看一个 Redis 主从结构下的示例,Redis 分布式锁是如何失效的: 1、客户端 A 从 Redis Maste...
1. 概述 在 Redisson 中,提供了 8 种分布锁的实现,具体我们可以在 《Redisson 文档 —— 分布式锁和同步器》 中看到。绝大数情况下,我们使用可重入锁(Reentrant Lock)就够了,对应到就是 org.redisson.RedissonLock 类,具体的使用示例可以看看 《芋道 Spring Boot Redis 入门》 的「6.2 Redis 分布式锁」小...
今儿,我们来搭建一个 Redis 调试环境,目标是: 启动 Redis Server ,成功断点调试 Server 的启动过程。 使用 redis-cli 启动一个 Client 连接上 Server,并使用 get key 指令,发起一次 key 的读取。 视频可见 B 站:https://www.bilibili.com/video/BV12X4y1c79z 艿艿比较腼...
redis安装 redis官方下载地址:https://redis.io/download redis 64位下载地址:https://github.com/ServiceStack/redis-windows 修改redis.windows.conf文件,设置maxmemory 大小 设置redis密码 启动redis redis-server.exe redis....
ReentrantLock中的公平锁和非公平锁的底层实现 首先不管是公平锁和非公平锁,它们的底层实现都会使用AQS来进行排队,它们的区别在于:线程在使用lock()方法加锁时,如果是公平锁,会先检查AQS队列中是否存在线程在排队,如果有线程在排队,则当前线程也进行排队,如果是非公平锁,则不会去检查是否有线程在排队,而是直接竞争锁。 不管是公平锁还是非公平锁,一旦没有竞争到锁,都会进行排队...
Redis缓存高可用集群
Redis线程模型 Redis基于Reactor模式开发了网络事件处理器,这个处理器被称为文件事件处理器(file event handler)。它的组成结构为4部分:多个套接字、IO多路复用程序、文件事件分派器、事件处理器。 因为文件事件分派器队列的消费是单线程,所以Redis才叫单线程模型文件事件处理器使用I/O多路复用(multiplexing)程序来同时监听多个套接字,并根据套接...