- 博客(24)
- 收藏
- 关注
原创 你会抛硬币吗:教你发明HyperLogLog
摘要:HyperLogLog是一种概率算法,用于高效统计大量数据的基数(不重复元素数量)。通过哈希函数将元素映射为二进制序列,模拟抛硬币实验,利用最大前导零数量估算基数。算法采用分桶策略(如16384个桶)和调和平均数计算,显著降低内存消耗(仅12KB)并控制误差在1%以内。相比传统方法(HashSet、BitMap),HyperLogLog在内存效率和可扩展性上具有显著优势,特别适合大规模数据场景。Redis等系统已内置该算法,提供PFADD、PFCOUNT等命令支持。
2025-06-15 14:53:03
764
原创 身份认证: JWT和Session是什么?
系统面临三个核心约束:合法用户才能给予资源服务端不记录之前的请求,服务端不知道用户已登录了每次都需要鉴权避免重复传输敏感信息,不能每次都携带(账号,密码)进行请求。
2025-05-26 23:49:06
431
原创 教你发明蓄水池抽样算法
考虑以下场景给你一个单向链表的头节点指针, 指针只能向后移动, 链表长度未知, 我们需要随机选取m个元素有一个超大容量的数据流, 无法直接加载到内存, 我们需要从中随机选取m个数据从实时视频流中抽取关键帧,但总帧数未知, 我们需要从中随机选取m个帧特征: 数据量N很大且未知、数据依次到达、等概率选取 P(i) = m / N。
2025-05-24 12:29:41
174
原创 关于TCP三次握手
TCP(传输控制协议),位于传输层,为应用层提供可靠的、面向连接的字节流服务。每个TCP连接由四元组唯一确定:(源IP, 源端口, 目的IP, 目的端口)可靠:数据无差错、不丢失、不重复,并且按序到达通过停止等待协议等机制实现面向连接:当连接建立后才发送数据全双工通信:建立连接后双方可同时收发数据。
2025-05-21 20:40:03
954
原创 MySQL与Redis一致性问题: 教你发明延迟双删
在数据库-缓存架构中,当MySQL中的数据(最新值)与Redis缓存中的数据(缓存旧值)出现差异时,由于程序总是优先读取Redis缓存,就会导致应用程序获取到过期数据,这种现象称为缓存一致性问题。
2025-05-20 20:07:09
1325
原创 第十三届蓝桥杯国赛Java大学A组题解
第十三届蓝桥杯国赛Java大学A组个人题解,A火柴棒数字,B小蓝与钥匙,C内存空间,D斐波那契数组,E交通信号,F数组个数,G六六大顺,H选素数,I图书借阅,J括号序列树
2024-02-28 18:17:41
1536
1
转载 cmd运行gpedit.msc(组策略)找不到文件?
注:转载至 知乎 https://www.zhihu.com/question/41745930。3.鼠标右键点击,然后选择"以管理员身份运行",然后等待运行结束即可。1.新建一个文本文件,在文件中输入以下内容。2.将文件后缀名修改为.bat。
2023-07-29 18:14:08
434
钢琴音频音效素材, do re mi fa so la si
2024-06-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人