20200510 redission入门

我们现在看到的就是redission官方网站
 
https://redisson.org
 
首页可以看出来,redisson可以实现很多东西,在redisson的基础上,redisson做了超多的封装,我们看一下,例如说
 
Spring Cache,TomcatSession,Spring Session,可排序的Set,还有呢Sortedsort,下面还有各种队列,包括这种双端
 
队列,还有map,这些是数据结构,下面就是各种锁,读写锁,这里面的锁还包含,可重入锁,还有CountDownLantch,这个是
 
在多线程的时候使用的,比如说我启动很多个线程,去执行某个任务,然后把任务进行切分,都完成之后有一个等待,等待
 
所有线程都达到这里之后,在一起往下走,把异步再变成同步,下边是一些线程池,还有订阅的各种功能,ScheduleService
 
来做调度的一个任务,所以Redisson是非常强大的,然后我们在右上角有一个documentation,我们打开他

20200510 redission入门_第1张图片

这就是github的redisson官方的文档
 
https://github.com/redisson/redisson/wiki
 
我们点击中文来看一下
 
https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95
 
左侧是详细的一个目录,上面这些都是配置方法,各种配置方法这里都是有的,我们任意点击进去,我们可以看到,
 
这里面的说明是非常详细的,因为redisson非常强大,我们主要是用redisson的可重入锁,用它来做一个分布式锁,
 
建议有兴趣的可以仔细研读redisson,中文文档或者英文文档都可以,这里面你肯定能收获很多,第三是程序调用的
 
一种方式,还有数据序列化,还有单个集合的数据分片,这个很好理解,比如说我又单个集合,里面非常大,我们把它
 
做一个分片,还有分布式对象,例如同样对象桶,二进制流,地理空间对象桶,这个在我们做地图应用的时候呢,也是非常
 
有用的,分布式集合也是非常有用,Map简单理解就是映射,Multimap是多值映射,例如说一对多的关系,我们在Map里面放了
 
一个key,然后放了一个value,那我们可以选择基于set的多值映射,基于list的多值映射,里面还提供了多值映射的
 
淘汰机制,这里面有很多,刚刚说过的双端队列,也就是说多列头和多列尾,都可以进行操作,下面还有各种阻塞延迟优先,
 
优先双端队列

20200510 redission入门_第2张图片
我们重点看这里面,分布式锁redisson,提供了强大的分布式锁,提供了公平所,红锁,读写锁,还有信号量

20200510 redission入门_第3张图片
分布式远程服务,Remote Service,这里面也非常强大,这在构建分布式应用的时候,这里面用的非常多

20200510 redission入门_第4张图片
还有Redis命令和Redisson对象的匹配列表,建议这可以多看一下

例如我们会整合Spring框架,前面我们讲了单点登陆,我们原生的实现了单点登陆,同时也使用了Spring官方的
 
Spring Session,来完成单点登陆,解决Tomcat集群环境下,Session共享的一个问题,那Redisson本身还提供Tomcat
 
Session Manager,还有Spring Session会话管理器,这些都是非常强大的,
 
https://github.com/redisson/redisson
 
那主要的项目就是redisson这个项目,下面还有redisson的一些docker,正如我们前面所说的,我们在学习Spring框架的
 
时候,可以看一些官方的例子,那在学Redisson的时候呢,也可以优先看一下Redisson官方的一些例子,这里面写的通俗易懂,
 
那我们就往下看一下,在分布式当中,里面的可重入锁
 
https://github.com/redisson/redisson/wiki/
8.-%E5%88%86%E5%B8%83%E5%BC%8F%E9%94%81%E5%92%8C%E5%90%8C%E6%AD%A5%E5%99%A8#81
-%E5%8F%AF%E9%87%8D%E5%85%A5%E9%94%81reentrant-lock
 
首先我们看一下Reentrant Lock,这个还支持自动过期解锁,那正如我们之前手写的分布式锁,我们也是支持过期自动解锁的,
 
那在设置锁的时候呢,可以看这里面,尝试加锁,最多等待100秒,上锁以后10秒自动解锁,下面直接unlock
 
// 加锁以后10秒钟自动解锁
// 无需调用unlock方法手动解锁
lock.lock(10, TimeUnit.SECONDS);
 
// 尝试加锁,最多等待100秒,上锁以后10秒自动解锁
boolean res = lock.tryLock(100, 10, TimeUnit.SECONDS);
if (res) {
   try {
     ...
   } finally {
       lock.unlock();
   }
}
 
其实在讲Redisson之前,我们是手写的一个分布式锁,这和我们在使用Spring Session之前,也是手写的解决Session共享的,
 
一个问题,这样学习其实理解这个问题,比解决方案更加深刻,例如之前我们讲的两种,为什么讲了两种,非常简单,如果在
 
日常工作中,需要改造TOMCAT集群方式的话,很有可能你的业务侵入会比较大,那么我们讲了Spring Session框架,这个时候
 
你就可以引用Spring Session框架,其实在这些方面我也发了很多心思,主要是可以实际落地,能在实际工作当中来使用他,
 
那么Redisson其实也是一个增补的知识,通过Redisson实现分布式锁的时候,真的超级简单,用的超级爽,所以Redisson提供的
 
各种功能,我们都可以大方的使用它,包括Redis,由于Redisson是Redis的一个深入扩展,并且它在实际的工作场景当中,会提高
 
我们的开发效率,其实Redisson可以带给我们更高的视野

20200510 redission入门_第5张图片
 
 

你可能感兴趣的:(曼哈顿计划,redis,redission)