当前位置: 首页 > article >正文

short-link笔记

1.@Accessors(chain = true)  

(见于Result类的注解)

不写默认为false,当该值为 true 时,对应字段的 setter 方法调用后,会返回当前对象。

-->可用于链式编程

参:@Accessors 注解详解-CSDN博客

2.关键信息脱敏

利用将class通过jackon序列化为JSON返回给前端,定义序列化处理器,在需要处理的字段上添加注解即可实现关键信息脱敏

3.mp提供bean属性填充

4.业务改造---hash算法随机生成短链接

原字符串越长,生成的短链接重复概率越小.因此原本采用原网址+System.currentTimeMillis()拼接的方式.但是在短时间内大量请求涌入的情况下,该策略失效.

因此采用原网址+UUID.randomUUID()的方式

5.业务---数据库分表数据的修改

单表修改直接修改即可,分表则需要判断分片键是否变更,如果变了则需要删除原有记录,插入新记录

6.疑问---post和put的区别

7.业务---短链接的有效期处理

短链接跳转中,从数据库查出短链接数据存入缓存时,先判断有效期是否过期,如果过期则存储null值到redis

8.业务---短链接缓存穿透

采用分布式锁+双重锁防止冲击数据库和后续业务堵塞

9.业务---短链接缓存击穿

布隆过滤器+null值缓存

先在布隆过滤器中判断,针对错判情况,再到null值缓存中查找,没有在进入数据库,如果没查到则缓存null值到缓存,形成布隆过滤器的兜底


http://www.kler.cn/news/318685.html

相关文章:

  • ubuntu 24.04 输入设备显示没有,系统没有找到电脑麦克风
  • web平台搭建-LAMP(CentOS-7)
  • 【自动驾驶】基于车辆几何模型的横向控制算法 | Stanley 算法详解与编程实现
  • ai写论文哪个平台好?分享4款ai论文写作平台软件
  • Python范例总结
  • 【计算机视觉】YoloV8-训练与测试教程
  • javascript是什么语言?它是干什么的?
  • Element UI在工程中使用方式
  • 79、Python之鸭子类型:没有听过鸭子类型?关键在于认知的转变
  • 网络安全-长亭雷池waf的sql绕过,安全狗绕过(5种绕过3+2)
  • 安科瑞Acrel-1000DP分布式光伏监控系统在鄂尔多斯市鄂托克旗巴音乌苏六保煤矿5MW分布式光伏项目中的应用
  • [linux][证书]证书导出公钥
  • MySQL记录存储过程执行的错误信息
  • 改进拖放PDF转换为图片在转换为TXT文件的程序
  • 浅谈C++之多线程实现
  • 口语训练材料
  • 力扣【283-移动零】【数组-C语言】
  • 微服务之服务保护
  • git checkout -b dev origin/dev
  • golang cmd.exec 执行命令后报错 No such file or directory
  • 最优化理论与自动驾驶(二-补充):求解算法(梯度下降法、牛顿法、高斯牛顿法以及LM法,C++代码)
  • Java-数据结构-排序(三) |ू・ω・` )
  • 【网络安全】密码学的新进展
  • Nginx 如何开启压缩
  • 伊犁云计算22-1 rhel8 dhcp 配置
  • YOLOv10改进,YOLOv10主干网络替换为VanillaNet( CVPR 2023 华为提出的全新轻量化架构),大幅度涨点
  • 操作系统知识3
  • 华为全联接大会HUAWEI Connect 2024印象(一):OpenEuler
  • uniapp沉浸式导航栏+自定义导航栏组件
  • 深入理解端口、端口号及FTP的基本工作原理