Redis NoSQL&Redis架构&数据结构

NoSQL(Not only SQL)

NoSQL指的是非关系型、分布式的数据库管理系统,它是为了应对互联网时代海量数据、高并发、高扩展性 以及非结构化数据的挑战而诞生的

NoSQL与SQL的区别

维度 SQL (关系型数据库) NoSQL (非关系型数据库)
数据模型 表格(行/列),结构固定,有严格模式(Schema) 文档、键值对、图、列族等,结构灵活,无模式或动态模式
存储示例 users表、orders表,通过user_id外键关联 一个订单文档包含:{ "user": {...}, "items": [...], "total": 100 }
扩展方式 垂直扩展(升级单台服务器的CPU、内存、硬盘) 水平扩展(增加更多廉价服务器,分摊数据)
事务支持 ACID (强一致性,支持复杂事务,如银行转账) BASE (最终一致性,事务支持较弱或不支持)
查询语言 结构化查询语言 (SQL),标准化,功能强大 各产品有自己的API或查询语言(如MongoDB的find()),不统一
最佳场景 数据结构稳定、需要复杂关联查询、要求强数据一致性 海量数据、高并发写入、数据结构多变、需要快速迭代
  • SQL以数据表的形式存储数据,而NoSQL的数据模型不固定,能够以键值对(Redis)、JSON文档(MongoDB)、图(Neo4j)、列族(HBase)等形式存储数据,所以NoSQL是非结构化的

  • 关系型数据库以结构化查询语言SQL进行查询操作,而不同NoSQL(redis、MongoDB)的查询语句不一样

  • SQL的特点是数据结构稳定、需要复杂关联查询、要求强数据一致性;NoSQL的特点是海量数据、高并发写入、数据结构多变、需要快速迭代

Redis架构

Redis 是一个开源的、基于内存的键值对存储系统

  • 键值型:value支持多种不同的数据结构,结构丰富

  • 速度快 :数据存储在内存中,读写速度极快

  • 持久化:提供 RDB (快照) 和 AOF (日志) 两种方式将内存数据保存到磁盘

  • **高可用与分布式:**提供主从复制、哨兵 (Sentinel) 和集群 (Cluster) 模式

工作原理

Redis是一个标准的C/S(客户端-服务器)架构

Client (客户端): 向服务器发送命令(如 SETGET),接收并展示返回结果;你在终端里敲的命令由它接收,并通过网络发送给redis-server执行

  • 命令行客户端 :redis-cli

  • 图形化桌面客户端

  • 编程客户端

**Server (服务器端):**负责存储数据、处理命令、管理内存、执行持久化、处理复制和集群等核心逻辑

完整交互过程:

  1. 启动服务器 :在服务器上运行 redis-server,它会监听一个端口(默认 6379),等待连接。

  2. 客户端连接 :客户端(如 redis-cli)通过 TCP 协议连接到服务器的 6379 端口,建立一个网络连接。

  3. 发送请求 :客户端向服务器发送一条命令,例如 GET mykey

  4. 处理与响应 :服务器接收、解析并执行命令(从内存中读取 mykey 的值),然后将结果通过网络返回给客户端。

  5. 关闭连接:当客户端主动退出或连接超时,TCP 连接会断开。

Redis数据结构

Redis是一个键值对(key-value)数据库,key一般是string类型,不过value的数据结构有很多

  • string:字符串

  • hash :哈希,自带快速定位索引的键值对数组

  • list :字符串列表,按照插入顺序排序。本质是一个双向链表

  • set :集合,无序的、不可重复的字符串集合

  • Sorted Set:有序集合

每一种数据类型它的操作命令都不一样

相关推荐
文青小兵4 小时前
云计算Linux——数据库MySQL主从复制和读写分离(十七)
linux·运维·服务器·数据库·mysql·云计算
码上有光4 小时前
MySQL基础操作——约束(下)——期末快速复习
数据库·sql·mysql·期末快速复习
fengxin_rou4 小时前
【MySQL 事务并发实战】:隔离级别、MVCC 与幻读问题彻底解
数据库·mysql·事务·并发
bqq198610264 小时前
非关系型数据库概述
数据结构·数据库·非关系型数据库
@insist12313 小时前
信息安全工程师-数据库安全全体系解析与最佳实践
数据库·安全·软考·信息安全工程师·软件水平考试
_ku_ku_14 小时前
数据库系统原理 · 事务管理与恢复 · 自学总结
数据库·oracle
lifewange15 小时前
Redis 集合(Set)运算完全指南
数据库·chrome·redis
TDengine (老段)15 小时前
TDengine RAFT共识协议 — 选举、日志复制、快照与仲裁
android·大数据·数据库·物联网·架构·时序数据库·tdengine
Full Stack Developme16 小时前
Spring Boot 事务管理完整教程
java·数据库·spring boot