redis
某科学的南条
我要偷偷的惊艳,然后打工所有人
展开
-
redission删除key
【代码】redission删除key。原创 2022-12-09 11:12:11 · 1828 阅读 · 0 评论 -
redission的看门狗失效问题
leaseTime这个参数字段表示租期,只要设置了租期,那么看门狗就失效了,不会续期// 具有Watch Dog 自动延期机制 默认续30s lock.tryLock(10, TimeUnit.SECONDS); // 拿锁失败时会不停的重试// 没有Watch Dog ,10s后自动释放 lock.lock(10, TimeUnit.SECONDS); // 尝试拿锁100s后停止重试,返回false// 没有Watch Dog ,10s后自动释放lock.tryLock原创 2021-10-15 15:00:14 · 2261 阅读 · 0 评论 -
redisson的isHeldByCurrentThread的使用解释
在thread-1还没有结束的时候,也就是在thread-1在获得锁但是还没有释放锁的时候, `thread-2由于被别的线程中断停止了等待从lock.tryLock的阻塞状态中返回继续执行接下来的逻辑,并且由于尝试去释放一个属于线程thread-1的锁而抛出了一个运行时异常导致该线程thread-2结束了, 然而thread-2完成了一系列操作后,线程thread-1才释放了自己的锁. 所以thread-2并没有获得锁,却执行了需要同步的内容,还尝试去释放锁。那解决方式我们就知道了,当前线程加的锁由当前线原创 2021-07-22 11:25:17 · 8091 阅读 · 1 评论 -
Redisson的锁续期
1.redisson的所有指令都通过lua脚本来完成,保证了原子性2.redisson设置一个key的默认过期时间为30s,如果某个客户端持有一个锁超过了30s怎么办?redisson中有一个watchdog的概念,翻译过来就是看门狗,它会在你获取锁之后,每隔10s帮你把key的超时时间设置为30s,这样的话,就算一直持有锁也不会出现key过期了其他线程获取到锁的问题了。3.redisson的看门狗逻辑保证了没有死锁的发生,但是如果宕机了,看门狗也没了,此时就不会延长key的过期时间,到了时间就会自动过原创 2021-01-29 17:42:29 · 8824 阅读 · 3 评论 -
RedisTemplate重写序列化和Cache重写序列化
Redis默认的是JDK的Serializer序列化方式,这种序列化后的数据是JSON的5倍大小,不利于存储,太消耗redis的内存所以我们要重写redisTemplate的序列化方式和cache的序列化方式将redisTemplate的KeySerializer设置为new StringRedisSerializer()方式而redisTemplate的ValueSerializer要设置为通用Jackson,通用Jackson反序列化的时候不用指定class类型,比Jackson好使一点,设置为n原创 2021-01-10 12:51:36 · 5321 阅读 · 0 评论