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

文章目录

  • [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 探索的奇幻之旅.

相关推荐
落笔画忧愁e35 分钟前
FastGPT快速将消息发送至飞书
服务器·数据库·飞书
Σίσυφος19001 小时前
halcon 条形码、二维码识别、opencv识别
前端·数据库
小刘|1 小时前
深入理解 SQL 注入漏洞及解决方案
数据库·sql
天上掉下来个程小白2 小时前
案例-14.文件上传-简介
数据库·spring boot·后端·mybatis·状态模式
哆木2 小时前
排查生产sql查询缓慢
数据库·sql·mysql
橘子师兄3 小时前
分页功能组件开发
数据库·python·django
book01214 小时前
MySql数据库运维学习笔记
运维·数据库·mysql
纠结哥_Shrek4 小时前
Oracle和Mysql的区别
数据库·mysql·oracle
极客先躯4 小时前
说说高级java每日一道面试题-2025年2月13日-数据库篇-请说说 MySQL 数据库的锁 ?
java·数据库·mysql·数据库的锁·模式分·粒度分·属性分
做梦敲代码4 小时前
达梦统计信息
数据库·达梦数据库