生产上面es除了存储日志,还有其他什么作用?
一、ES(Elasticsearch)不止存日志,生产真实用途
1.日常6大作用
1.日志集中存储 + 检索(最基础) 项目日志、Nginx、Tomcat、容器日志统一丢 ES,配合 Kibana 查报错、排故障。 2.全文搜索引擎(核心主业) 商品搜索、文章搜索、APP 站内搜索、文档检索,模糊匹配、分词搜索首选。 3.海量数据实时查询 千万 / 亿级数据,秒级分页、筛选、聚合统计,比 MySQL 快很多。 4.业务报表、数据大屏 订单统计、流量统计、用户行为、运营看板,Kibana 直接做可视化图表。 5.用户行为分析 埋点日志、点击、浏览、下单轨迹,做用户画像、流量分析。 6.监控告警数据源 服务器指标、接口耗时、异常报错存入 ES,对接告警系统触发钉钉 / 短信报警。2.后端服务器 连接 ES 到底干嘛
后端连 ES 3 个核心目的 提供前端搜索能力 后端把商品 / 文章 / 订单等业务数据同步到 ES,用户搜关键词,后端调用 ES 快速返回结果。 MySQL 适合精准增删改查 ES 适合模糊、分词、海量检索 业务数据快速统计聚合 后端做统计、排行、分组、环比数据,直接查 ES,减轻 MySQL 压力。 收集业务运行日志 后端接口报错、入参出参、异常信息写入 ES,开发线上快速定位 BUG。二、最简单直白对比
MySQL:存核心业务数据(用户、订单、账号),做主事务 ES:做搜索、查询、统计、日志、数据分析,不做主库三、生产常见架构
业务数据:MySQL → 同步到 ES → 后端查 ES 给前端做搜索 系统日志:后端 / 服务器 → Filebeat → ES → Kibana 查看排查 埋点数据:APP / 前端 → 上报后端 → 存入 ES → 做数据分析四、一句话总结
ES 不是日志专属,它就是一个超快的海量全文检索 + 数据分析数据库; 后端连 ES,就是为了实现快速搜索、轻量大数据统计、线上日志排错后端对接 ES 生产常用业务场景清单
一、搜索类(最主流)
1.商城商品搜索 分词搜商品名、品牌、分类、规格,模糊联想、拼音搜索、价格区间筛选 2.内容平台检索 文章、资讯、帖子、知识库全文搜索,标题 / 正文关键词匹配 3.APP 站内搜索 用户、动态、话题、功能菜单快速检索 4.电商店铺 / 商户检索 按店名、主营品类、地区精准 + 模糊查找 5.订单 / 工单快捷搜索 单号、备注、联系人、手机号模糊查单二、数据查询 & 分页筛选
1.海量列表秒级分页 千万级数据分页、多条件组合筛选,分担 MySQL 查询压力 2.多维度过滤查询 状态、时间、地区、标签、等级等组合条件批量筛选 3.历史轨迹查询 操作记录、登录日志、流水记录快速调取三、聚合统计 & 业务报表
1.各类数据排行 销量排行、热度排行、访问量排行、销售额排行 2.分组维度统计 按天 / 小时 / 地区 / 渠道 / 用户等级做数据汇总 3.实时运营看板 访问量、下单量、转化率、活跃用户实时统计 4.数据环比 / 同比简易分析 快速算出时段增减数据四、日志运维类
后端业务日志采集 接口入参、出参、异常报错、慢请求存入 ES,线上排错 接口性能监控 统计接口响应耗时、失败率、高频异常 服务链路日志汇总 微服务全链路日志统一检索定位问题五、用户行为 & 运营分析
用户浏览行为统计 页面点击、停留时长、跳转路径分析 热门内容挖掘 自动统计高访问、高互动内容 用户标签筛选 根据行为标签批量筛选人群六、风控 & 审核场景
违规内容检索 敏感词匹配、违规文案批量筛查 异常行为识别 高频操作、恶意访问数据聚合排查七、其他小众实用场景
地理位置附近检索 门店、网点、骑手距离范围搜索(ES 地理坐标) 联想下拉推荐 搜索输入实时联想热搜词 数据脱敏后查询 非核心脱敏业务数据放 ES 查询后端使用原则(生产必记) 增删改主力用 MySQL,ES 只做查询、搜索、统计 数据定时同步 MySQL→ES,不把 ES 当主库 复杂事务、强一致性业务绝不走 ES 大数据量、高并发搜索优先走 ESredis和es的区别有什么区别
直白结论 Redis 完全替代不了 ES,只能互补,不能平替 后端连 Redis 和连 ES 用途天差地别 一、先分清各自核心定位 Redis:内存高速缓存 + 临时数据 主打:快、热数据、短时间存储、简单查询 ES:磁盘海量搜索引擎 + 大数据分析 主打:分词搜索、模糊查询、聚合统计、海量日志、全文检索 二、哪些场景 Redis 能顶替 ES 简单精准搜索(固定 key、固定字段) 热搜词、搜索联想下拉 热门商品榜单、临时排行 短时间日志缓存(临时看) 接口高频查询结果缓存 附近人简单距离排序(少量数据) 总结:简单查询、热点数据、临时统计 Redis 能用 三、这些核心功能 Redis 绝对做不到(ES 独有) 中文分词搜索(最致命) Redis 只能精确匹配,不能拆词搜 例:搜 “手机壳”,Redis 搜不到 “透明手机软壳” 全文模糊检索(文章、备注、详情内容) 多字段复杂组合筛选 价格 + 地区 + 分类 + 标签 一起筛选 海量数据聚合统计 按天、小时、区域分组汇总、报表 海量日志存储 + 链路排查 日志量大、存很久、随意关键词查报错 大数据量千万级分页 + 深度筛选 地理位置大范围检索 海量数据离线分析、用户行为画像 四、后端服务器连 Redis 到底干啥 减轻 MySQL 压力,做热点数据缓存 做分布式锁、限流、幂等 存放登录 token、会话、验证码 临时排行榜、计数、浏览量 接口结果缓存,加速响应 消息队列简易削峰 五、生产真实搭配(最标准架构) MySQL:存正式业务主数据 Redis:查之前先走缓存,扛高并发、提速 ES:专门做搜索、日志、统计、报表 流程: 用户搜索 → 先查 Redis 缓存热搜结果 → 没有再查 ES → ES 拿业务数据返回 → 写入 Redis 缓存 六、一句话极简区分 查得快、量小、简单 = Redis 搜内容、量大、模糊分词、统计报表、存日志 = ES 七、最简对照表 功能 Redis Elasticsearch 中文分词搜索 ❌ 不行 ✅ 强项 模糊全文检索 ❌ ✅ 海量日志存储 ❌ 太贵易丢 ✅ 专业 聚合统计报表 ❌ 很难做 ✅ 天生支持 高并发热点查询 ✅ 无敌 ✅ 也可以但贵 数据持久化长期存 一般 极强 占用资源 低 高 适合数据量 小 / 热数据 海量全量数据流程走向
完整数据流走向 + 存储位置 整体流程链路 用户前端输入关键词搜索 ↓ 后端服务 第一步:请求先走Redis 数据位置:Redis 内存 存的内容:搜索关键词 + 对应分页结果列表(热搜 / 高频搜索缓存) 逻辑:key = 搜索词 + 筛选条件,命中直接返回前端,不走 ES 第二步:Redis没命中 / 缓存过期 后端发起查询请求 → Elasticsearch 数据位置:ES 磁盘索引库 ES 数据来源:提前由MySQL 业务库通过同步程序(canal / 同步脚本 /logstash)把商品、文章、订单等全量业务数据,实时 / 定时同步进 ES 索引 第三步:ES 检索完成返回结果 数据从ES 磁盘索引 → 后端服务内存 第四步:后端把本次搜索结果写入 Redis 数据落回Redis 内存,设置过期时间(比如 5~30 分钟) 同关键词下次搜索直接读缓存 最终:数据返回前端页面展示 数据类型 存储位置 作用 核心原始业务数据 MySQL 磁盘 增删改查、事务、主数据源 可搜索全量索引数据 ES 磁盘分片索引 分词、模糊、多条件检索、聚合 搜索热点缓存结果 Redis 内存 高并发兜底、提速、减少 ES 压力 临时请求流转数据 后端应用服务器内存 中转、组装、过滤、格式转换 最终展示数据 前端浏览器内存 / 页面 用户查看流程图
MySQL(原始数据) → 同步 → ES(检索库) ↑ 用户搜索 → 后端 → Redis(缓存) ←┘ 无缓存则直连ES 补充关键点 ES 只存用于搜索的字段,不存完整大字段、不做主库 Redis 只存短期热门搜索结果,不存全量数据,到期自动淘汰 数据不会反向从 ES 同步回 MySQL,MySQL 永远是数据唯一真相源 数据更新:MySQL 改数据 → 同步到 ES → Redis 旧缓存自动失效 / 覆盖更新