redisson分布式锁

Redisson

具有内存中数据网格功能的Redis Java客户端
基于高性能的异步和无锁Java Redis客户端和Netty框架。
 1.可重入锁,A调用B。AB都需要同一锁,此时可重入锁就可以重入,A就可以调用B。不可重入锁时,A调用B将死锁
 2.读写锁:写锁是一个排它锁(互斥锁),读写是共享锁,写锁没释放读就必须等待,读锁没释放写锁也需等待
 3.闭锁:当所有线程锁都走完了以后,可以使用分布式闭锁机制
 4.信号量:可以用来做分布式限流操作
 5.缓存数据一致性的问题:
            双写模式:写数据库后,写缓存       问题:并发时,2写进入,写完DB后都写缓存。有暂时的脏数据
            失效模式:写完数据库后,删缓存     问题:还没存入数据库呢,线程2又读到旧的DB了
            解决方法:缓存设置过期时间,定期更新,写数据写时,加分布式的读写锁。

1.添加依赖

	<dependency>
        <groupId>org.redisson</groupId>
        <artifactId>redisson</artifactId>
        <version>3.12.0</version>
    </dependency>

2.添加配置

	@Configuration
	public class MyRedissonConfig {
	
	    /**
	     * 所有对Redisson的使用都是通过RedissonClient
	     * @return
	     * @throws IOException
	     */
	    @Bean(destroyMethod="shutdown")
	    public RedissonClient redisson() throws IOException {
	        //1、创建配置
	        Config config = new Config();
	        config.useSingleServer().setAddress("redis://192.168.77.130:6379");
	
	        //2、根据Config创建出RedissonClient实例
	        //Redis url should start with redis:// or rediss://
	        RedissonClient redissonClient = Redisson.create(config);
	        return redissonClient;
	    }
	
	}
上一篇:redis19 - 客户端选择:jedis、redission、lettuce


下一篇:spring boot:用redis+redisson实现分布式锁(redisson3.11.1/spring boot 2.2)