暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

缓存穿透与雪花算法等

yuerer 2024-06-04
153

大量用户注册名查询,缓存穿透(数据在缓存中不存在,在数据库也不存在)
1、查询不存在的用户,key设置为用户名,值设置为null,60s后过期
不足:用户查询了不注册,60s内其他用户也用不了这个名称
2、布隆过滤器(由bit数组和若干个hash函数组成),可以快速分析出某个元素不存在集合中,不能删除元素,不能判断某个元素是否一定存在
不足:如果用户注册了又注销不用,布隆过滤器不能删除元素,注销的用户名相当于一直都用不了了
3、放redis set集合中,数据量大(火车票用户十多个亿),直接放内存不妥

snowflake
1位保留位、
41位时间戳(可以96年)、
5位数据id和5位机器id(1024台机器一起用)、
mybatis-plus取数据id dataCenterId: 与mac地址有关;取机器id workId:与数据id和进程pid有关
自行设计:redis实现,lua脚本去获取dataCenterId、workId并且自增
12位序列号,并发度为4096(同一时刻第4097台机器怎么生成id,阻塞后重新生成)

Builder构造者模式


docker 安装

在Windows下的安装及使用,下载官网

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论