pragmatic-java-engineer
  • 引言
  • 第一章 后端技术导言
    • 1.1 后端基础设施
    • 1.2 Java后端技术概览
    • 1.3 如何学习后端技术
  • 第二章 Java项目工程化
    • 2.1 项目构建
    • 2.2 代码版本控制
    • 2.3 代码质量保证
  • 第三章 开发框架
    • 3.1 依赖注入
    • 3.2 对象关系映射
    • 3.3 日志
    • 3.4 Web MVC
    • 3.5 总结
  • 第四章 Spring
    • 4.1 Spring核心组件
    • 4.2 Spring数据操作框架
    • 4.3 使用Spring Boot快速开发
    • 4.4 Spring常用组件
    • 4.5 总结
  • 第五章 数据存储
    • 5.1 关系型数据库-MySQL
    • 5.2 非关系型数据库
    • 5.3 缓存
    • 5.4 搜索引擎-Elasticsearch
    • 5.5 总结
  • 第六章 数据通信
    • 6.1 RESTful架构风格
    • 6.2 远程过程调用-RPC
    • 6.3 消息中间件
    • 6.4 总结
  • 第七章 Java编程进阶
    • 7.1 Java内存管理
    • 7.2 Java网络编程
    • 7.3 Java并发编程
    • 7.4 Java开发利器
    • 7.5 Java新版本特性
    • 7.6 总结
  • 第八章 性能调优
    • 8.1 调优准备
    • 8.2 性能分析
    • 8.3 性能调优
    • 8.4 总结
  • 第九章 安全技术
    • 9.1 Java加密
    • 9.2 安全HTTP - HTTPS
    • 9.3 Web安全
  • 附录A: 代码构建常用命令
  • 附录B: Git常用命令
  • 附录C: MySQL常用命令
  • 附录D: MongoDB常用命令
  • 附录E: Java调优常用命令
  • 附录F: 如何应对在线故障
  • 附录G: 架构简明指南
Powered by GitBook
On this page

第五章 数据存储

在应用程序中,很多数据,如用户的信息、商品的信息都是需要保存的。临时存储在内存中、写入到文件中、存储到数据库、存储到搜索引擎都是数据存储的方式。数据存储可以说是应用开发中处于最基础位置的组件。

对于数据存储中最为常用的数据库来说,可以从存储介质上分为:

  • 内存数据库:数据主要存储在内存中,同时也可以将数据持久化存储到硬盘中。如Redis、H2DB的内存模式。对于这种数据库,由于内存成本昂贵,因此一定要做好存储的量化分析、容量预估,防止内存不足造成服务不可用。

  • 硬盘数据库:数据存储在硬盘上的这种数据库是最为常见的。MySQL、Oracle、PostgreSQL、HBase、H2DB、SQLite等等都是硬盘数据库。此外,SSDB是基于SSD硬盘的KV数据库,支持的数据接口很丰富,是Redis的另外一个选择。

这里暂且抛开文件存储以及存储介质不谈,主要针对包括数据库在内的以下几种常用存储方式进行讲述:

  • 关系型数据库: 关系型数据库是用的最普遍的数据库,也是在计算机课堂上讲的最多的一种数据库。典型的包括:MySQL、Oracle、PostgreSQL等。而目前已经出现了以Google Spanner和PingCAP的TiDB为代表的新型分布式关系数据库。

  • 非关系型数据库:非关系型数据库是最近这些年兴起的数据库,区别于关系型数据,其并不遵循关系模型,因此使用场景和关系型数据库是不同的。以MongoDB、CouchDB、HBase为代表。

  • 缓存系统:缓存是为了解决传统文件读写性能缓慢的问题而产生的主要以内存为存储介质的软件,一般是数据库的辅助部分,并不要求持久化存储。以Memcached、Redis为代表。

  • 搜索引擎:为搜索场景而诞生的软件,一般是基于倒排索引实现,能够提供很好的搜索性能。以Solr、Elasticsearch为代表。

此外,Zookeeper也是目前经常被使用的数据存储组件,与前面的相比,其比较适合用于存储量较小的目录式配置存储。

Previous4.5 总结Next5.1 关系型数据库-MySQL

Last updated 1 year ago