数据结构
已收录文章:37篇
-
SPLFixedArray 适合固定长度、按整数下标顺序消费的批处理缓存,但不适合需要稀疏键、频繁扩容或复杂关联字段的场景。本文用可运行示例核对输入、校验、顺序读取和内存观测边界。477 收藏
-
SplPriorityQueue 是最大堆,同优先级元素的取出顺序没有稳定性保证。本文用可运行示例解释 compare 返回值、数组优先级和稳定顺序的实现边界。358 收藏
-
Redis LMPOP 可以从多个 List 中选择一个非空队列并批量取出元素,但它不是轮询器。本文核对 LEFT、RIGHT、COUNT、空结果和多键顺序,给出多队列消费的安全写法与上线检查点。115 收藏
-
Java 21 引入 SequencedCollection 后,List、Deque 等有顺序集合可以用统一的首尾 API 与 reversed() 视图处理最近记录、队列和倒序展示。本文从订单事件列表出发,说明接口选择、空集合边界、反向视图写入和不可变包装的验收方法。100 收藏
-
Redis 的 SMISMEMBER 可以一次判断多个成员是否属于同一个 Set,并按请求顺序返回 0/1 结果。本文用购物车权益集合核对重复成员、空键、返回映射和 ACL 只读权限边界。207 收藏
-
Go 在 range 遍历 map 时允许删除尚未访问的键,但遍历顺序本来就不稳定,新增元素也不能依赖是否会被访问。本文用小实验区分语言保证、实现现象和可测试的安全写法。384 收藏
-
Redis 8.8 带来原生 Array 数据结构,适合滚动窗口、按索引读取和范围聚合。本文用一组最小命令验证它与 List 的差异,并给出从 List 迁移前应检查的读写边界、客户端支持和回滚办法。154 收藏
-
活动报名、接口去重、用户访问统计里经常会用 Redis Set。本文从“页面显示人数不对”的现场开始,逐步验证 SADD 返回值、SCARD 数量、Key 粒度和过期策略,整理一套更稳的 Set 去重写法。194 收藏
-
本文用 Redis Bitmap 实现用户签到:用 SETBIT 写入每天状态,用 GETBIT 查询当天是否签到,用 BITCOUNT 快速统计月签到天数,并补充连续签到和键设计建议。464 收藏
-
之前松哥写过一个 MySQL 系列,但是当时是基于 MySQL5.7 的,最近有空在看 MySQL8 的文档,发现和 MySQL5.7 相比还是有不少变化,同时 MySQL 又是小伙伴们在面试时一个非常重要的知识点,因此松哥打113 收藏
-
hash的数据结构 hash底层数据结构的实现包括两种:ziplist和字典当保存的所有键值对字符串长度小于 64 字节并且键值对数量小于 512 时使用ziplist ,否则使用字典的方式 ziplist底层实现 ziplist是为486 收藏
-
在之前的文章中,我们有说过bitmap,bitmap在很多场景可以应用,比如黑白名单,快速判定,登录情况等等。总之,bitmap是以其高性能出名。其基本原理是一位存储一个标识,其他衍生知道咱310 收藏