从关系型数据库和非关系型数据库说起

文章目录

  • [1. 非关系型数据库介绍](#1. 非关系型数据库介绍)
    • [1.1 特点与优势](#1.1 特点与优势)
    • [1.2 类型与应用场景](#1.2 类型与应用场景)
    • [1.3 适用性与限制](#1.3 适用性与限制)
  • [2. 非关系型数据库的细节](#2. 非关系型数据库的细节)
    • 2.1.认识NoSQL
    • [2.2 查询方式](#2.2 查询方式)
    • [2.3 事务](#2.3 事务)
    • [2.4 对比](#2.4 对比)
  • [3. Redis](#3. Redis)

1. 非关系型数据库介绍

非关系型数据库(NoSQL)是一种数据库管理系统,它采用了非传统的表格关系模型,与传统的关系型数据库(如SQL数据库)不同。非关系型数据库通常以键值对、文档、列族、图形等形式存储数据,以适应对大数据量、高并发性、分布式部署等需求的处理。

1.1 特点与优势

  1. 灵活的数据模型:非关系型数据库可以支持多种数据模型,如键值对、文档、列族、图形等,适用于不同类型和结构的数据存储需求。

  2. 高性能和可伸缩性:非关系型数据库通常设计为分布式系统,能够水平扩展,支持处理大规模数据和高并发访问。

  3. 无需预定义模式:与关系型数据库需要定义表结构不同,非关系型数据库通常无需事先定义数据模式,能够灵活地存储和处理各种数据格式。

  4. 适应大数据应用:非关系型数据库适用于处理大规模数据、半结构化数据和非结构化数据,能够应对大数据应用场景的需求。

1.2 类型与应用场景

  1. 键值对型数据库(Key-Value Stores):如Redis、Memcached,适用于缓存、会话管理等场景。

  2. 文档型数据库(Document Stores):如MongoDB、Couchbase,适用于内容管理、博客平台等场景。

  3. 列族型数据库(Column Stores):如HBase、Cassandra,适用于分布式存储、数据分析等场景。

  4. 图形型数据库(Graph Databases):如Neo4j、ArangoDB,适用于社交网络、推荐系统等场景。

1.3 适用性与限制

  1. 数据一致性:部分非关系型数据库在追求性能和可伸缩性时可能牺牲了一致性,需要在应用设计中进行权衡。

  2. 查询能力:相比关系型数据库,非关系型数据库在复杂查询和事务处理上可能表现较弱。

  3. 学习成本:非关系型数据库通常需要开发人员具备新的技能和经验,学习成本相对较高。

非关系型数据库以其灵活的数据模型、高性能和可伸缩性等优势,在大数据处理和分布式应用中有着广泛的应用前景,但也需要根据具体的应用场景和需求进行选择和权衡。

2. 非关系型数据库的细节

2.1.认识NoSQL

NoSql 可以翻译做 Not Only Sql(不仅仅是SQL),或者是 No Sql(非Sql的)数据库。是相对于传统关系型数据库而言,有很大差异的一种特殊的数据库,因此也称之为非关系型数据库。

2.2 查询方式

传统关系型数据库会基于 Sql 语句做查询,语法有统一的标准;

而不同的非关系数据库查询语法差异很大,实现语法是各种各样的。

例如:

redis: get people 1

MongDB: db.users.find({_id:1})

elesticasearch: GET http://localhost:9200/users/10

2.3 事务

传统关系型数据库 能满足事务 ACID 的原则。

而非关系型数据库 往往不支持事务,或者 不能严格保证 ACID 的特性,只能实现基本的一致性。

2.4 对比

SQL NoSQL
数据结构 结构化 非结构化
数据关联 关联的 无关联的
查询方式 SQL查询 非SQL
事务特性 ACID BASE

3. Redis

Redis 诞生于2009年全称是 Re mote D ictionary Server 远程词典服务器,是一个基于内存的键值型NoSQL数据库。

特征:

  • 键值(key-value)型,value支持多种不同数据结构,功能丰富
  • 单线程,每个命令具备原子性
  • 低延迟,速度快(基于内存.IO多路复用.良好的编码)。
  • 支持数据持久化
  • 支持主从集群.分片集群
  • 支持多语言客户端

Redis的官方网站地址:https://redis.io/

从本篇文章开始, 我们将要踏上对 Redis 探索的奇幻之旅.

相关推荐
leisoo809712 小时前
股票筹码分布怎么用获利比例成本区间与集中度实战 IG50免费开源股票数据API接口
开发语言·jvm·数据库·python·开源
字节跳动的猫12 小时前
LikeShop 商品评价体系二开:追评、晒图审核与评价标签筛选功能开发
运维·数据结构·数据库
范中勤13 小时前
LLM 动态加载与多用户缓存架构技术文档
redis·langchain·llm·缓存架构·多用户隔离
行业研究员13 小时前
Agent Memory降低Token消耗原理解析
数据库·人工智能·oracle·腾讯云·智能体
yixun_gdas13 小时前
企业网站内容巡查的价值与方法:企业官网的合规与形象管理
数据库·内容运营
见闻小天地13 小时前
空调机房赛莱默B&G冷冻泵/冷却泵的核心技术特性分析
大数据·运维·数据库
辛迪聊物业数字化13 小时前
物业管理系统新手部署与实操指南
数据库·物联网·架构·系统架构
March.s14 小时前
MySQL 数据库原理与实战:从数据管理到 LAMP 建站全解
数据库·mysql
小小龙学IT14 小时前
Redis 源码深度解析:从常用命令到内部实现
redis·golang·开源
字节跳动的猫14 小时前
LikeShop 种草社区模块二开:笔记发布、话题广场与商品挂载实现
数据结构·数据库