Redisson 3.27
2024-04-11 18:17:37 4 举报
Redisson 是一个基于Redis的分布式数据结构和服务框架,它提供了一系列强大且易于使用的工具,用于管理分布式系统的数据。Redisson充分利用了Redis的特性,如键值存储、发布/订阅、队列等功能,提供了诸如分布式锁、分布式定时器、分布式队列、分布式集合等多种分布式数据结构和服务。此外,Redisson还提供了丰富的设置和配置选项,允许用户根据自己的需求定制和调整性能。总的来说,Redisson 是一个功能丰富、易于使用且性能强大的分布式数据库框架,适用于构建大规模、高性能的分布式系统。
作者其他创作
大纲/内容
EvictionScheduler一个清理过期数据的定时任务
TimerTask创建一个任务并放入到时间轮中
根据配置进行重试
RedissonLock#tryAcquire
根据配置创建 EventLoopGroup默认 NioEventLoopGroup
下面就是死循环
Redisson#Redisson构造器
MasterSlaveEntry#connectionWriteOp从连接池里面找
RedisExecutor#scheduleRetryTimeout
ServiceManager#ServiceManager
根据配置文件创建不同的连接管理器
CommandAsyncService#evalAsync执行脚本
RedissonLock#tryLockInnerAsync
RedisExecutor#scheduleConnectionTimeout
RedisConnection#send
ConfigSupport#createConnectionManager
IdleConnectionWatcher
所有的命令会封装并执行
RedissonBaseLock#unlockAsync0
RedisExecutor#execute
TimerTask创建一个任务并放入到时间轮中处理写超时
RedissonAutoConfiguration#redisson创建客户端
RedisExecutor#getConnection
CommandAsyncService
MasterSlaveConnectionManager#createCommandExecutor创建执行器
RedisExecutor#connectionWriteOp
TimerTask创建一个任务并放入到时间轮中处理连接超时
RedissonBaseLock#unlock
获取不到
CommandAsyncService#evalWriteAsync
RedisExecutor#scheduleWriteTimeout
RedissonLock#unlockInnerAsync执行 rula 脚本
EventExecutorGroup#scheduleWithFixedDelay添加一个定时任务关掉长时间未使用的连接
都继承MasterSlaveConnectionManager
ServiceManager#initTimer
RedissonLock#subscribe订阅这个锁的 channel
RedissonLock#RedissonLock
RedissonLock#lock
创建一个线程池,默认大小为 cpu数量*2
RedissonBaseLock#evalWriteSyncedAsync
RedissonLock#tryAcquireAsync
Semaphore#tryAcquire使用信号量进行等待前面返回的锁剩余时间
锁操作
RedisExecutor#sendCommand
RedissonLock#tryAcquire尝试获取锁
Redisson#getLock
ChannelOutboundInvoker#writeAndFlush通过netty发生请求
RedisExecutor#releaseConnection释放连接
HashedWheelTimer一个netty的时间轮
ConnectionManager#calcSlot算出槽位
0 条评论
下一页