redission以及Redis分布式锁探索入门
Redission:基于Redis的Java内存数据网格,最艺术的Redis Java客户端。网格听起来特高大上,理解成存储就可以。最艺术的应该就是最牛逼的客户端。
结构:
应用场景:
(1) Distributed Java applications 分布式Java应用,Redisson为Java上的分布式应用程序提供了基于Redis的对象,集合,锁,同步器和服务的分布式实现。
(2) Caching 缓存,Redission为Java提供了不同的基于Redis的缓存实现,如 JCache API,Hibernate二级缓存,Spring Cache和应用程序级别缓存
(3) Data Source Caching 数据源缓存,Redission支持适用Read-Through,Write-Behind策略对数据库。Web服务器或者其他任何数据源进行基于Redis的读写缓存。
(4) Distributed Java tasks Scheduling and execution 分布式Java任务调度和执行,在某些点上对Java的任务处理可以被拆分并且并行处理。Redission提供了ExecutorService和ScheduledExecutorService的分布式实现。
(5) MapReduce,Redission提供基于Java的MapReduce编程模型去处理存储在Redis中的大型数据。
(6) Easy Java Redis client 简单的Java Redis客户端,Redission可以被用来作为Java Redis客户端,没有学习难度,有了它 就可以不需要去知道所有Redis命令 就开始使用Redis。
(7) Web session clustering web回话集群,负载均衡用户所有会话。Redission提供了基于Tomcat会话管理和Spring session实现 。
分布式锁:
可以实现实现可重入锁、读写锁、公平锁、信号量、CountDownLatch等很多种复杂的锁的语义
注意线程获取锁、释放锁问题