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

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

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

相关推荐
爱上语文10 分钟前
MyBatisPlus(1):快速入门
java·开发语言·数据库·后端·mybatis
marsjin33 分钟前
如何使用Python从MySQL数据库导出表结构到Word文档
数据库·python·mysql
百度智能云技术站2 小时前
Redis 数据恢复的月光宝盒,闪回到任意指定时间
数据库·redis
~央千澈~2 小时前
评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡
java·前端·数据库
星辰离彬3 小时前
【线上故障排查】系统缓存雪崩故障排查与解决全流程解析
java·spring boot·后端·程序人生·缓存·面试
茶本无香3 小时前
数据库查询性能优化:深入理解与应用物化视图
数据库·性能优化·查询·物化视图
2501_915373883 小时前
neo4j删除所有数据
数据库·neo4j
静心观复3 小时前
DNS缓存
网络·缓存
TDengine (老段)3 小时前
TDengine 运维——巡检工具(安装工具)
大数据·运维·数据库·物联网·时序数据库·tdengine·涛思数据
fruge4 小时前
ubuntu 22.04 编译安装nignx 报错 openssl 问题
数据库·ubuntu·postgresql