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

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

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

相关推荐
阿洛学长1 分钟前
使用 Hexo+GitHub 搭建个人免费博客教程(小白)
运维·数据库·架构
m0_624578592 分钟前
PHP怎么实现X-XSS-Protection头_PHP浏览器XSS过滤【操作】
jvm·数据库·python
MongoDB 数据平台9 分钟前
破解车联网数据管理困局,MongoDB助力长城汽车构建车联数智化核心引擎
数据库·mongodb
2301_7796224110 分钟前
如何自动计算SQL税费信息_利用触发器实时扣算税额
jvm·数据库·python
weixin_4440129310 分钟前
mysql在高并发环境下的读写分离与负载均衡
jvm·数据库·python
2401_8246976610 分钟前
如何通过phpMyAdmin给WordPress所有用户发送全站通知_系统表插入
jvm·数据库·python
CLX050512 分钟前
如何管理Oracle服务器的内核共享内存_shmmax与shmall计算
jvm·数据库·python
云边有个稻草人13 分钟前
端边云一体化时序数据管理:数据库选型与技术实现
数据库·端边云时序数据方案·工业物联网时序数据库·开源时序数据库选型·高压缩时序存储技术·时序数据库选型指南·tsfile 存储引擎技术
2301_8125396714 分钟前
golang如何实现备忘录模式_golang备忘录模式实现方案
jvm·数据库·python
weipt14 分钟前
国产数据库私有化部署实战:PolarDB for PostgreSQL 免费容器版踩坑记
数据库·postgresql