- 博客(1102)
- 资源 (18)
- 收藏
- 关注
原创 2.6 Elasticsearch-快照与恢复:SLM 策略 + HDFS/S3仓库
快照(Snapshot)是 ES 最后的“后悔药”,而 SLM(Snapshot Lifecycle Management)把“吃药”变成了定时定量、免运维的自动化流程。本节把 SLM 与两种最主流的分布式仓库——HDFS 与 S3——串成一条完整链路:从仓库注册、SLM 策略编写、索引模板隔离、到跨集群恢复与演练,全部给出可直接落地的配置与脚本。,数据就能在分钟级回到任何你想要的时间点——这就是 SLM 与分布式仓库给 Elasticsearch 带来的“时间回溯”能力。占位,即可在仓库路径里看到。
2025-11-23 11:04:05
26
原创 2.5 Elasticsearch-扩容与缩容:_cluster/reroute & _shrink API
下一节我们将用 ILM 把这套流程固化成“热-温-冷-删”四阶段策略,让集群在凌晨三点自动完成“扩容-缩容-归档”一条龙,彻底把值班人从熬夜中解放出来。上一节我们把索引从 3 副本 6 分片强行“压”进了 2 节点的 8 GB 内存里,但业务高峰刚过,老板立刻要求“把富余节点还回去,账单砍一半”。扩容人人会,缩容能把数据安全地“塞”进更少的节点而不丢片、不红集群,才是生产级玩法。,前者让你徒手移动分片,后者让你把 5 个主片折叠成 1 个,配合在一起就能完成“平滑缩容”这一反向操作。
2025-11-23 10:24:23
3
原创 2.4 Elasticsearch-故障转移实验:kill -9 节点后数据还能读吗?
只要副本在,kill -9 也杀不掉你的数据,但应用层必须做好秒级重试,才能把短暂的“黄灯”消化在用户无感知的范围内。t0+6200 旧主分片在 es03 被标记为 stale,allocation decider 清除,集群 green。模拟最暴力的节点宕机,看看 Elasticsearch 到底能不能把数据救回来,客户端还能不能读。Step 1 写入 300 GB geonames 数据,每个索引 3 主 1 副,共 6 个索引。等价于直接拔电源,JVM 没机会写磁盘,也来不及清理 lock 文件。
2025-11-22 08:25:17
12
原创 2.3 Elasticsearch-集群状态:Green/Yellow/Red 排查思路
2.3 Elasticsearch-集群状态:Green/Yellow/Red 排查思路——让“红绿灯”不再只是玄学。
2025-11-21 21:09:05
12
原创 2.2 Elasticsearch-分片与副本:容量规划公式 〈Shard = 节点数 × 1.5~3〉
接上一篇文章:https://jimn1982.blog.youkuaiyun.com/article/details/154456020 ,继续写一个小节内容,这个小节的题目是《2.2 Elasticsearch-分片与副本:容量规划公式 〈Shard = 节点数 × 1.5~3〉》,写一篇技术文章。不要输出智能提示用语。一次性输出完全,不要出现《接着说》。
2025-11-08 08:16:32
715
原创 2.1 Elasticsearch-节点角色:master、data、ingest、coordinating、ml、transform
PUT _cluster/settings{“persistent”: {“cluster.routing.allocation.awareness.attributes”: “box_type,ml”}}更多技术文章见公众号: 大城市小农民
2025-11-05 21:35:07
869
原创 1.10 Elasticsearch-Kibana Discover & Dev Tools 速成
目标:30 min 内掌握 Kibana 最常用的两块主屏——Discover(探查)与 Dev Tools(控制台),能把日志搜出来、能把命令跑下去,并能把结果搬得上 PPT。
2025-11-01 10:44:10
767
原创 1.9 Elasticsearch-轻量聚合:terms、avg、max、min
1.9 Elasticsearch-轻量聚合:terms、avg、max、min——在“搜”完之后立刻“算”,不拖慢毫秒级响应。
2025-11-01 10:07:18
945
原创 1.8 Elasticsearch-排序、分页、_source 过滤
若索引文档很大且只需要部分字段,可在请求体里显式过滤,减少网络带宽与序列化开销。掌握这三板斧,才能在 Elasticsearch 高并发场景下游刃有余。业务上经常需要显式指定排序字段与顺序,语法与 SQL 的。默认情况下,Elasticsearch 会把整条原始 JSON (计算出的距离值,前端可直接渲染,避免多余字段传输。在 Elasticsearch 中,默认按照。返回条数实现浅分页,与 MySQL 的。条记录做全局排序,内存与 CPU 随。优化,大数据集请评估性能。返回结果每条命中仅包含。
2025-11-01 09:56:39
822
原创 1.7 Elasticsearch-简单查询:match、term、range、exists
在目录下新建mydic.dic,每行一个词,保存为 UTF-8 无 BOM。修改同目录,把mydic.dic加到中。滚动重启集群,新词立即生效,无需 reindex。
2025-10-26 07:59:51
983
原创 1.6 Elasticsearch-中文分词:IK、pinyin、smartcn 插件安装与对比
在目录下新建mydic.dic,每行一个词,保存为 UTF-8 无 BOM。修改同目录,把mydic.dic加到中。滚动重启集群,新词立即生效,无需 reindex。
2025-10-19 13:30:13
716
原创 1.5 Elasticsearch-常见字段类型:text/keyword、date、geo_point
下面用“踩过就忘不掉”的四个高频类型——text、keyword、date、geo_point——把“存、搜、算”一次性拆开讲清。所有示例基于 8.x 版本,7.x 同样适用。text 负责“搜得到”,keyword 负责“筛得准”,date 负责“切得细”,geo_point 负责“圈得稳”。“normalizer”: “lowercase” // 查询时统一转小写,保持“精确”的同时忽略大小写。“raw”: { “type”: “keyword” }, // 子字段,供排序/聚合。
2025-10-18 11:51:08
802
原创 1.4 Elasticsearch-CRUD 全实战:PUT/POST/GET/DELETE/_bulk
504 gateway timeout | 负载均衡超时 | 把 client 超时调到 120 s,或直连 data 节点 |PUT 是“身份证写”,POST 是“匿名生”,GET 是“毫秒读”,DELETE 是“逻辑埋”,_bulk 是“万箭齐发”。| 429 EsRejectedEx | 写队列满 | client 退避 + 限流,或扩容 data 节点 |{“title”:“ES 实战指南”,“price”:69.9}{“title”:“ES 实战指南”,“price”:69.9}
2025-10-18 10:54:19
738
原创 1.3 Elasticsearch-索引、文档、字段、映射—与 MySQL 的类比
如果把 MySQL 比作“关系型世界里的老管家”,那 Elasticsearch(后文简称 ES)就是“搜索界的自由派艺术家”。两者都能存数据、都能查数据,但底层哲学截然不同:MySQL 强调“先定结构,后放数据”;要快速把 MySQL 的经验迁移到 ES,最省脑细胞的法子就是“类比”——把熟悉的表、行、列、Schema 一一对应到 ES 的索引、文档、字段、映射。MySQL 的行是“定长结构”,ES 的文档是“JSON 树”。只影响“索引阶段”的倒排生成,已经存进去的文档不会被动迁。
2025-10-17 21:32:29
653
原创 1.2 Elasticsearch-单节点启动:开箱即用的 RESTful API
单节点实例不是“玩具”,而是所有 Elasticsearch 集群的原子模型。只要把下面三步跑通,你就拥有了后续水平扩展、滚动升级、跨机房容灾的同一套 RESTful 接口。后续无论是垂直扩容(加内存)还是水平扩容(加节点),你依旧用同一套 URL、同一组 JSON 结构。掌握单节点,就是掌握整个 Elasticsearch 的“元模型”。单节点启动只需解压、运行、记住密码,就能通过 HTTPS + 基本认证获得完整的 RESTful 能力。代表 123ms 完成,可粗略估算单节点写入吞吐。
2025-10-17 21:20:42
899
原创 1.1 Elasticsearch-倒排索引 5 分钟图解
Elasticsearch 的检索速度之所以快,本质上是“空间换时间”——磁盘多存一张大表,换来内存里 O(1) 的定位。下一节,我们把这张图落地:亲手写一条 PUT 请求,看 Lucene 如何在磁盘上生成 .tim、.tip、.doc、.pos 四件套,并用 Luke 打开验证。Term Index:对 Dictionary 再建“前缀树”索引,常驻内存,前缀匹配一次定位 4 KB Block。把下面 5 张脑图连起来,就是倒排索引的“一生”——从文档进站到关键词秒回,全程 5 分钟看懂。
2025-10-15 21:47:26
801
原创 0.6 Elasticsearch-开发机必备插件:Kibana、Postman/curl、jq、elasticsearch-head
0.6 Elasticsearch-开发机必备插件:Kibana、Postman/curl、jq、elasticsearch-head——把“黑盒”ES 变成“白盒”的四件套上一篇我们把 8.x 单节点跑起来了,但只停留在的“Hello World”阶段。真正的开发、调试、排障,需要一套顺手的“可视化+命令行”工具链。下面这四款插件(或独立工具)是笔者团队每台开发机的标配,装完即可把 ES 从“只能看返回 JSON”变成“一眼看懂集群、索引、文档、性能”。
2025-10-15 21:27:05
1292
原创 0.5 Elasticsearch-一键搭建:Docker Compose 起 3 节点集群
目标:一条命令拉起 3 个 Elasticsearch 节点,自动发现、自动选主、带安全认证、带 Kibana 可视化,5 分钟内可索引第一条文档。环境:Docker ≥ 20.10、Docker Compose ≥ v2、宿主机 8 GB+ 空闲内存。仓库:完整文件已上传至,可直接 clone 使用。
2025-10-15 06:16:55
1049
原创 0.3 Elasticsearch-最低硬件 & 操作系统要求
最大堆 ≤ 31 GB(Compressed OOPs 临界点),超过后需改用 48 GB+ 并关闭压缩指针,性价比骤降,因此生产仍优先 Linux。| AWS | m6i.2xlarge (8 vCPU/32 GB) + 1 TB gp3 (5k IOPS) | 单节点月价 ≈ $180 || 阿里云 | ecs.c7.2xlarge + ESSD PL1 1 TB | 支持倚天 ARM,同价多 15 % 性能 || 云 | 最小可投产规格 | 备注 |CPU:6 核 12 线程。ARM64 特别说明。
2025-10-12 17:05:40
892
原创 0.2 Elasticsearch在 Elastic Stack 中的定位
换句话说,Elasticsearch 不只是一颗“搜索心脏”,更是 Elastic Stack 的元数据、配置、监控、告警、机器学习模型乃至 UI 状态的唯一真相源(Single Source of Truth)。Kibana 的 Stack Management、Security、Watcher、Transform、SLM、ILM 等子系统,全部把配置写进。机器学习作业(Anomaly Detection、Data Frame Analytics、NLP 推理)把模型分片、状态、结果全部保存在。
2025-10-12 16:28:42
713
原创 0.1 Elasticsearch-为什么要用搜索引擎而不是数据库
把搜索需求直接丢给 MySQL,在数据量刚过百万行时就“全线飘红”——CPU 飙高、IO 打满、响应从毫秒级跌到秒级。这不是 DBA 调优不到位,而是关系型数据库的基因决定了它只能“逐行过滤”,无法像搜索引擎那样“倒排定位”。Elasticsearch(ES)之所以成为现代系统的“第二条存储主干道”,本质是把“查”这件事从磁盘回表+BT 扫描的泥潭里拉出来,放到内存倒排+分布式并行的新赛道。下面从四个维度拆解“为什么用 ES 而不是数据库做搜索”。
2025-10-11 21:25:12
866
原创 Xshell效率实战:SSH管理秘籍
双击即连、宏即巡检、按钮即发布、拖拽即传文件;百台服务器分组+染色+搜索,3 秒定位;日志、密钥、隧道、高亮、云端同步全开,安全又省心。把这些配置导出成.xsh会话包备份,下次换电脑 1 分钟恢复原状,真正做到“Xshell 在手,SSH 无忧”。祝你效率翻倍!
2025-10-10 20:50:33
1327
原创 27.面试与总结——30 道高频面试题精讲,学习路线图回顾 & 社区贡献指南
至此,从“浏览器回车”到“CI 绿灯”,从“Hello World”到“30 道面试题”,我们完成了一条完整的现代前端链路。把系列文章打印出来,就是一份自带目录的“纸质知识库”;把 GitHub 仓库星标起来,就是一把随时可以拔出的“瑞士军刀”。技术成长没有终点,只有分叉口:你可以继续深耕框架源码,也可以往全栈、架构、产品甚至开源商业进发。无论选择哪条路,保持“写代码、写文字、写人生”的节奏,下一次面试,坐在对面的考官其实也在等你分享——“原来这个问题还能这样解”。
2025-10-10 20:47:03
851
原创 26.实战案例复盘——秒杀库存扣减 Lua 脚本,排行榜赛季结算 2 亿条数据,社交平台 Feed 流推送
Key -> userId,Value -> score,相同 user 多分区累加,输出 <userId, totalScore>,2 亿 → 1.2 亿。粉丝 > 1 w 的大 V 发 Feed 时,若 fan 的 inbox 为空,触发异步任务补全最近 20 条,防止首刷空窗。使用 Redis pipeline,单次 100 条,batch 大小 8 k,单机 40 w/s。Redis 只读 1 Gbps,无阻塞。赛季 30 天,日活 800 w,写入 9 000 w/天,共 2.1 亿条积分明细。
2025-10-08 08:13:59
1072
原创 25.微服务缓存设计模式——Cache-Aside、Read-Through、Write-Behind,分布式锁 Redlock 争议与 Redisson 实现
在上一节我们把 Redis 集群搭好、把序列化协议定了,但“有缓存”不等于“缓存好用”。业界把最常见的三种套路抽象成 Cache-Aside、Read-Through、Write-Behind(也叫 Write-Back)。分布式锁能不用就不用,必须用时就接受“锁失效”的兜底方案(幂等、幂重、对账)。下一节我们将进入“缓存与数据库的最终一致性”实战:基于 Canal + Kafka 的异步消息链路透传,以及“缓存击穿、雪崩、穿透”的三板斧防护。缓存除了“存数据”,还常被顺手当成“分布式锁”。
2025-10-08 08:09:02
733
原创 24.容器与云原生——Docker 官方镜像最佳实践,K8s StatefulSet + Sentinel 高可用
K8s 滚动升级时,旧 Pod 与新 Pod 并存 30 s,Sentinel 可能同时看到 5 个 Sentinel 与 3 个 Sentinel 两种视图,触发两次 failover,出现双主。把 digest 写进 Dockerfile / Helm values,CI 做一次不可变推送,后续任何节点拉到的都是同一层 blob,符合“可重复构建”合规基线。识别主节点,Pod 重建后 IP 必变,导致“主观下线”永远投票不过半。写进自身配置文件,容器一旦重启,写层丢失,又回到“刚出厂”状态。
2025-09-30 07:07:53
853
原创 23.RedisInsight & 可观测——内存密钥分析 + RDB 解析,Prometheus + Grafana 模板
23 RedisInsight & 可观测——内存密钥分析 + RDB 解析,Prometheus + Grafana 模板——把“看不见”的内存变成“可观测”的指标,让每一次 key 过期都能被量化1.2 三大核心视图1.3 实战 30 秒定位“僵尸”key场景:内存凌晨 3 点突增 5 GB。步骤:a) 在 Memory Overview 里框选 02:50-03:10 的曲线,右键“Analyze Snapshot”;
2025-09-29 17:45:10
691
原创 22.模块系统——编写 C 扩展“Redis-Hello”,RediSearch + JSON 联合索引
22. 模块系统——编写 C 扩展“Redis-Hello”,RediSearch + JSON 联合索引。既演示了模块系统的钩子深度,也验证了 RediSearch + RedisJSON 的联合威力。下一节将拆解“Redis-Hello”的异步线程池改造,把 CPU 密集的分词任务从主线程挪走,通过不到 500 行 C,我们让一个普通 Redis 实例拥有了“文档写入即索引”的能力,整个模块体积 < 500 行 C,零配置,编译后只有 18 KB,加载不到 2 ms。argv[4] 是索引前缀;
2025-09-29 11:58:10
504
原创 21.性能调优实战——redis-benchmark 坑点,100w qps 突破:绑核、NUMA、中断亲和
硬中断均衡失败,跨 NUMA 内存一跳 120 ns,上下文切 1.2 M/s。下面把踩过的 5 个坑、4 条命令、3 组参数、2 行代码、1 个脚本一次性摊开,带你把单实例 Redis 推到 100 w QPS(单条 16 Byte 读,P99 < 1 ms),并保证 8 核负载 95 % 仍线性可压。假设 2 NUMA、16 Core、32 HT,eth0 8 队列,0-7 号中断落在 NUMA0。这样硬中断 0-7,软中断 8-15,Redis 线程 8-15,三层同一 NUMA,零跨跳。
2025-09-29 11:30:30
848
原创 20.安全与 ACL——Redis 6 ACL 规则语法,TLS 1.3 加密通道
20. 安全与 ACL——Redis 6 ACL 规则语法,TLS 1.3 加密通道(接上文《19. 高可用演进:从主从、哨兵到 Cluster 的踩坑实录》)
2025-09-28 16:29:47
878
原创 19.慢查询 & Latency——慢日志阈值设置,Intrinsic Latency 测试
19. 慢查询 & Latency——慢日志阈值设置,Intrinsic Latency 测试(接上文《18. 生产级延迟分布可视化》)
2025-09-28 15:20:27
762
原创 18.事件模型——ae_epoll 事件循环源码走读,命令执行 pipeline 图解
源码位置:src/ae_epoll.c(Redis 7.2 分支,commit 7b0c25c)18. 事件模型——ae_epoll 事件循环源码走读,命令执行 pipeline 图解。(基于 优快云 前文 152161640 的上下文,继续深入)下面把“客户端发来一条 SET” 时,Redis 主线程。所走的路径画成一张泳道。
2025-09-27 16:32:12
841
原创 17.内存管理——jemalloc 碎片率统计,内存淘汰 8 种策略 + LRU/LFU 近似算法
(接上一篇《16. 内存管理——jemalloc 基础与 arena 划分》)
2025-09-27 10:14:57
710
原创 16.代理与横向扩展——Twemproxy/Redis-Codis 对比,Redis 6.0 IO 多线程模型
本章聚焦路线 2,把历史上最具代表性的两个代理 Twemproxy 与 Codis 掰开揉碎对比,再顺势引出 Redis 6.0 的 IO 多线程模型——它虽然没改变“命令单线程执行”的语义,却彻底动摇了“代理唯一出路”的假设。可见,IO 线程让单实例吞吐直接翻倍,再横向扩展 32 分片即可轻松突破 2000 万 qps,代理层存在的最大理由——“单实例扛不住”——被釜底抽薪。扩容必须重启代理,导致所有连接闪断。• io_threads_list[id]:每个 IO 线程独占的循环数组,避免跨线程锁。
2025-09-27 07:33:54
642
原创 15.Cluster 分片——16384 slot 映射 & CRC16 算法,横向扩容 3 → 5 主节点
完成扩容后,集群进入 5-master 时代,接下来就可以按需给每个主节点挂载从节点,或者继续 horizontal scaling 到 9、17、33 …15. Cluster 分片——16384 slot 映射 & CRC16 算法,横向扩容 3 → 5 主节点。(基于上一篇的 3-master 环境,目标:在线平滑扩展到 5-master,零业务中断)crc16 表驱动实现,对 1 M 随机 key 测试,最大偏差仅 0.8%,完全均匀。此时 M4/M5 没有 slot,角色为 master。
2025-09-26 22:35:42
617
原创 14.Sentinel——3 节点哨兵搭建,手动 kill -9 主库验证切换 < 30 s
14.Sentinel——3 节点哨兵搭建,手动 kill -9 主库验证切换 < 30 s(基于上一篇 1-Master-2-Slave 环境,Redis 7.2.4,CentOS 7.9)kill -9拓扑回顾。
2025-09-26 21:20:17
1131
原创 13.复制 Replication——psync2 部分同步流程,读写分离 + 延迟监控
(接上文「12. 复制握手与全量同步」结尾:当 7001 完成 RDB 传输并进入增量命令转发阶段后,本节讨论 7001 与 7002 之间网络闪断又恢复时,如何只补发“缺口”而不再传 6 GB RDB,以及业务侧如何利用这套机制做读写分离与秒级延迟监控。,看如何把一个 12 GB RDB 的传输时间从 120 s 压到 40 s,并保证零明文落盘。
2025-09-24 22:39:47
725
原创 12.持久化——RDB 全量快照 fork 写实复制,AOF 追加写入 & rewrite 触发
上一篇把「为什么 Redis 不能当 DB」聊到了「单机数据安全」这一层,但留了一个尾巴:RDB 与 AOF 到底怎么落地、各自有什么隐形代价、线上到底怎么选。本节把镜头拉近,直接拆源码、拆内核、拆生产故障,一次性把「持久化」最后一层窗户纸捅破。
2025-09-24 22:23:15
1502
原创 11.GEO & Stream——附近的人 5 km 查询,消息队列 Stream 实现 ACK
11. GEO & Stream——附近的人 5 km 查询,消息队列 Stream 实现 ACK(接上文《10. 千万级关注列表,Redis 真的比 MySQL 快吗?》)
2025-09-21 17:02:51
721
原创 10.HyperLogLog / Bitmap / BitField——UV 统计 1 亿用户 < 16 KB,日历签到 365 天 < 46 B
HyperLogLog 把“去重”压到 16 KB,Bitmap 把“日历”压到 46 B,BitField 把“连续”压成一条指令。在 Redis 的世界里,“大”数据从来不是绝对体积,而是你能把多少信息塞进多小的常量空间。更多技术文章见公众号: 大城市小农民。
2025-09-21 15:10:45
1025
AjaxPHP打造等待进度条效果(二)视频教程最新版本
2025-01-11
PHP如何防止注入及开发安全PHP100视频教程53最新版本
2025-01-11
ApacheRewrite伪静态配置PHP100视频教程54最新版本
2025-01-11
PHP5中使用PDO连接数据库PHP100视频教程55最新版本
2025-01-11
Cake中文手册chm版最新版本
2025-01-11
AjaxPHP检查用户名或邮件(三)php100视频教程50附源文件打包最新版本
2025-01-11
PHPMYSQL会员系统的开发(下)PHP100视频教程52最新版本
2025-01-11
PHPMYSQL会员系统的开发(上)PHP100视频教程51最新版本
2025-01-11
PHP安装程序的制作原理和步骤PHP100视频教程56最新版本
2025-01-11
PHP备份数据库原理和方法PHP100视频教程57最新版本
2025-01-11
PHP100视频教程59关于BIWEB常见问题和结构分析最新版本
2025-01-11
PHP100视频教程60PHP与数据库代码开发规范最新版本
2025-01-11
PHP手册2009国庆版chm最新版本
2025-01-11
PHP5与MySQL5基础与实例教程最新版本
2025-01-11
Win2003下架设IIS和PHP视频教程最新版本
2025-01-11
Windows下ApacheMySQLPHP的安装视频教程最新版本
2025-01-11
PHP教程5本CMH电子书推荐最新版本
2025-01-11
PHP面向对象技术全面讲解pdf中文版最新版本
2025-01-11
PHP入门基础练习源码打包最新版本
2025-01-11
Smarty中文教程大师兄修正版chm最新版本
2025-01-11
《协同程序:代码压缩与高效执行的艺术》
2025-03-11
《嵌入式系统中的内存管理:原理、优化与前沿技术》
2025-03-11
《Python编程精要:高效学习指南》
2025-03-11
《Kubernetes v1.22 官方文档:云原生架构核心指南》
2025-03-11
《Django深度探索与实战精要:从基础到进阶的全维度解析》
2025-03-11
《Oracle RMAN高级应用与实践精要》
2025-03-11
《HTTP协议深度解析与面试精要》
2025-03-11
《Linux系统深度剖析与实战精要》
2025-03-11
《Linux性能优化:从初探到精通的进阶之旅》
2025-03-11
《云原生时代:OpenShift架构的理论与实践探索》
2025-03-09
《云原生数据中台:架构创新、方法论精要与实践探索》
2025-03-09
用PHP完整的网站开发视频教程最新版本
2025-01-11
PHP新手入门教程CHM最新版本
2025-01-11
PHP100视频教程(四十一、站内搜索、多关键字、加亮显示)最新版本
2025-01-11
php5中文手册中文Haohappy版(chm)最新版本
2025-01-11
PHP入门教程及参考手册chm最新版本
2025-01-11
视频教程43PHP中MVC学习之ThinkPHP(上)最新版本
2025-01-11
PHPMVC学习之ThinkPHP(下)视频教程最新版本
2025-01-11
PHP输出CSV和EXCEL两种简单的方法最新版本
2025-01-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅