缓存、数据库、搜索引擎、消息队列

缓存、数据库、搜索引擎、消息队列这四者都是应用依赖的后端基础服务,他们的性能直接影响到了应用的整体性能,有时候你代码写的再好也许就是因为这些服务导致应用性能无法提升上去。

缓存: 缓存通常被用来解决热点数据的访问问题,是提高数据查询性能的强大武器。在高并发的后端应用中,将数据持久层的数据加载到缓存中,能够隔离高并发请求与后端数据库,避免数据库被大量请求击垮。目前常用的除了在内存中的本地缓存,比较普遍的集中缓存软件有 Memcached 和 Redis。其中 Redis 已经成为最主流的缓存软件。
数据库:数据库可以说是后端应用最基本的基础设施。基本上绝大多数业务数据都是持久化存储在数据库中的。主流的数据库包括传统的关系型数据库(MySQL、PostgreSQL)以及最近几年开始流行的 NoSQL(MongoDB、HBase)。其中 HBase 是用于大数据领域的列数据库,受限于其查询性能,一般并不用来做业务数据库。
搜索引擎:搜索引擎是针对全文检索以及数据各种维度查询设计的软件。目前用的比较多的开源软件是 Solr 和 Elasticsearch,都是基于 Lucence 来实现的,不同之处主要在于 termIndex 的存储、分布式架构的支持等。Elasticsearch 由于对集群的良好支持以及高性能的实现,已经逐渐成为搜索引擎的主流开源方案。
消息队列:数据传输的一种方式就是通过消息队列。目前用的比较普遍的消息队列包括为日志设计的 Kafka 以及重事务的 RabbitMQ 等。在对消息丢失不是特别敏感且并不要求消息事务的场景下,选择 Kafka 能够获得更高的性能;否则,RabbitMQ 则是更好的选择。此外,ZeroMQ 则是一种实现消息队列的网络编程 Pattern 库,位于 Socket 之上,MQ 之下。

相关推荐
疯狂打码的少年5 小时前
【数据库技术】关系模型基本概念(关系/属性/元组/键)
java·服务器·数据库·笔记
普马萨特6 小时前
实体与位置关系的数据从哪里来:获取、治理与仍待解决的问题
网络·数据库
醉颜凉7 小时前
MySQL 8 忘记 root 密码?这两种方法帮你轻松解决
数据库·mysql·adb
RestCloud7 小时前
集成链路监控体系搭建:接口调用、数据流转与异常告警全覆盖
数据库·数据安全·ipaas·api管理·数据监控·集成平台·api 治理
LaughingZhu7 小时前
Product Hunt 每日热榜 | 2026-08-27
人工智能·深度学习·神经网络·搜索引擎·百度
xxwl5858 小时前
MySQL 基础学习笔记
数据库·mysql
SKH.8 小时前
Linux软件编程(6)线程间通信
java·开发语言·数据库
Rain的Java大神之路8 小时前
PC版网站被狂刷怎么处理
java·数据库·redis·后端·mysql·web安全·运维开发
闻哥8 小时前
小表驱动大表——SQL查询优化的核心原则(深度剖析+流程图)
数据库·sql·流程图
cmes_love8 小时前
港股Level2历史数据:逐笔成交与分钟线
数据库·oracle