![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发
山川之水
承蒙关照,欢迎关注。
展开
-
redis常见问题以及解决方法
穿透 原因: 客户端一直在查数据库没有的数据,导致没有查缓存然后直接到了数据库。 解决方式: 1.布隆过滤器 :预先把数据ID全存在过滤器里面(实时更新),当在查缓存为空时,再判断过滤器里面有没 有,没有的话直接返回,有的话再查数据库。 ...原创 2020-04-01 18:21:25 · 421 阅读 · 0 评论 -
分布式锁实现
代码示例如下设置超时时间:为了finally代码块执行前线程卡死没有释放锁,防止死锁。clientId作用:给每个线程取ID,setnx时候value保存,每个线程和锁ID绑定。finally里面判断作用:只有当锁ID和线程ID一样时候才释放锁,防止当本线程没有执行完,但是到了超时时间,本线程锁解锁了,然后其他线程进来加锁,把其他线程加的锁给解锁了。redisson...原创 2020-03-17 17:34:42 · 89 阅读 · 0 评论 -
什么是CAS/ABA以及volatile的使用
1.CAS原理介绍CAS全称 比较和交换(Conmpare And Swap),它是一种思想,是乐观锁。内存地址V,内存地址V中旧值C,获取的旧预期值A,要修改的新值B, 工作内存W我们需要把C修改成B时首先从V中取到值进入W中时,不像悲观锁一样,把V中值锁住,而是先把A放入W中,然后用A和C进行比较,如果不一样,则修改失败。然后重新从V中获取A,这个过程叫自旋,使用了自旋...原创 2019-11-12 15:04:55 · 459 阅读 · 0 评论