![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
分布式
文章平均质量分 55
分布式
来深圳
在校大学生
展开
-
缓存一致性问题
文章目录场景可能的方案更新缓存和更新数据库删除缓存和更新数据库推荐方案 场景 系统使用redis等缓存来提高读性能 读请求 先读缓存,如果缓存不存在,则从数据库读取,并重建缓存; 同时,写入缓存中的数据,都设置失效时间 写请求 修改一条数据时,不仅要更新数据库,也要连带缓存一起更新。缓存一致性的重点 可能的方案 一下几种方案在并发和异常的情况下都会存在不一致问题 更新缓存和更新数据库 先更新缓存,后更新数据库 先更新数据库,后更新缓存 缓存利用率低:每次数据发生变更,都「无脑」更新缓存,但是缓存原创 2022-05-16 12:28:01 · 95 阅读 · 0 评论 -
Redis实现分布式锁
什么是分布式锁 如果不同的系统或同一个系统的不同主机之间共享了某个资源时,往往需要互斥来防止彼此干扰来保证一致性。 Redis实现分布式锁时的问题 原子性 使用lua脚本 没有释放锁 设置lock的过期时间 释放别人的锁 为保证只释放自己加的锁,位lockKey设置唯一id, 释放时先判断再释放 大量失败的请求 使用自旋,或阻塞一段时间后再次抢锁 主从复制问题 redisson框架为了解决这个问题,提供了一个专门的类:RedissonRedLock,使用了Redlock算法 可重入原创 2022-05-11 21:36:10 · 237 阅读 · 0 评论 -
分布式ID
目录UUID雪花算法由来组成代码实现优缺点 UUID UUID是基于当前时间、计数器(counter)和硬件标识(通常为无线网卡的MAC地址)等数据计算生成的。 GUID有时专指微软对UUID标准的实现,通常表示成32个16进制的数字组成的字符串,实质上还是一个128位长的二进制整数。在windows生态中,经常使用。UUID是由开放软件基金会标准化,作为分布式计算环境的一部分。 4c37637b-cc8f-11ec-ba3f-5081409b7484 存在的问题 uuid长度过长,占用较大存储空间原创 2022-05-06 21:41:55 · 118 阅读 · 0 评论 -
限流算法&分布式限流
目录固定窗口算法滑动窗口算法漏桶算法令牌桶算法分布式限流 固定窗口算法 固定窗口算法又叫做计数器算法,主要通过一个支持原子操作的计数器来累计 1 秒内的请求次数,当 1 秒内计数达到限流阈值时触发拒绝策略。每过 1 秒,计数器重置为 0 开始重新计数。 存在不足: 滑动窗口算法 滑动窗口算法是对固定窗口算法的改进, 和算法题里所涉及到的滑动窗口算法一样的 漏桶算法 漏桶算法,又称leaky bucket 一个系统处理请求,就像一个固定容量的水桶去溜进来的水,同时也让水流出去,但是它无法预见有多少水流进来和原创 2022-05-05 22:00:29 · 553 阅读 · 0 评论