摘要: 1.纯内存操作 Redis将数据存储在内存中,读写操作完全基于内存,避免了磁盘I/O的延迟。内存的访问速度(纳秒级)比磁盘(毫秒级)快多个数量级,这是Redis高效的基础。 2.单线程操作 避免锁竞争与上下文切换 单线程无需处理多线程的锁竞争问题,减少了线程切换和同步的开销。 虽然无法利用多核CPU 阅读全文
posted @ 2025-04-18 10:31 留梦& 阅读(74) 评论(0) 推荐(0)
摘要: 首先是结论: Redis中的哨兵(Sentinel)和设计模式中的哨兵模式(Sentinel Pattern)虽然名称相似,但本质上是完全不同的概念,解决的问题和场景也截然不同。 哨兵: 功能: 监控:持续检查主节点和从节点的健康状态 自动故障转移:当主节点宕机时,Sentinel会自动选举一个从节 阅读全文
posted @ 2025-04-17 20:44 留梦& 阅读(14) 评论(0) 推荐(0)
摘要: 概念 责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,允许你将多个对象连接成一条链,请求沿着这条链传递,直到有对象处理它为止。这种模式解耦了请求的发送者和接收者,使得多个对象都有机会处理请求。 应用场景 多级请求处理 审批系统(员工→经理→总监→CE 阅读全文
posted @ 2025-04-15 20:01 留梦& 阅读(23) 评论(0) 推荐(0)
摘要: 如:cloneable 问:为什么该接口无任务内容,那为什么在克隆的时候还是要实现这个接口 起到了标记作用,通过实现这个接口告知JVM,这个对象是可以克隆的 这类无任务内容的接口统称为:标记型接口 阅读全文
posted @ 2025-04-14 20:12 留梦& 阅读(9) 评论(0) 推荐(0)
摘要: ArrayList: 基于动态数组实现,内存中是连续存储的。 支持快速随机访问(通过索引直接定位元素)。 默认初始容量为10,扩容时容量增长为原来的1.5倍(例如:10 → 15 → 22 → ...)。 LinkedList: 基于双向链表实现,元素分散在内存中,每个节点包含前驱和后继指针。 插入 阅读全文
posted @ 2025-04-13 15:02 留梦& 阅读(12) 评论(0) 推荐(0)
摘要: peek方法是一个中间操作,它的主要用途是观察流中的元素,同时支持对流元素进行调试或执行无副作用的操作 1.调试和日志记录 用于调试时查看流程里过程中某个阶段的元素状态,而无需修改流的内容。 2.观察中间操作的结果 由于流是惰性求值的(lazy),只有终止操作(如 collect、forEach)被 阅读全文
posted @ 2025-04-11 19:38 留梦& 阅读(230) 评论(0) 推荐(0)
摘要: 概念 覆盖索引是一种数据库优化技术,指查询所需的字段全部包含在某个索引中,使得数据库引擎无需访问实际的数据行(即“回表”),仅通过索引即可完成查询。它通过减少磁盘I/O和提升数据检索效率来优化性能。 核心原理 索引结构:数据库索引通常采用B+树结构,叶子节点存储索引字段的值和指向数据行的指针(如主键 阅读全文
posted @ 2025-04-08 21:05 留梦& 阅读(127) 评论(0) 推荐(0)
摘要: 在Java中,两者都是用于处理可变字符串的类,它们的主要目的实在频繁修改字符串时提高性能(避免创建大量String对象) 1.共同点 可变性:两者都支持动态修改字符串内容(如追加、插入、删除)。 方法相似:两者的API几乎完全相同。常见方法如下: 1.append(String str):将指定字符 阅读全文
posted @ 2025-04-07 16:05 留梦& 阅读(15) 评论(0) 推荐(0)
摘要: 1.全文搜索 用于对文本字段进行分词后的模糊匹配,支持相关性评分 match查询:对文本进行分词后搜索,默认使用OR,支持AND、minimum_should_match等参数。 minimum_should_match解析: 是 Elasticsearch 中一个用于控制查询条件的参数,主要作用于 阅读全文
posted @ 2025-04-07 11:39 留梦& 阅读(28) 评论(0) 推荐(0)
摘要: FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> DISTINCT -> ORDER BY -> LIMIT/OFFSET FROM 作用:确定数据来源的表。 示例:FROM users 表示从 users 表读取数据。 WHERE 作用:过滤符合条件 阅读全文
posted @ 2025-04-06 19:51 留梦& 阅读(12) 评论(0) 推荐(0)