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 (客户端): 向服务器发送命令(如 SET、GET),接收并展示返回结果;你在终端里敲的命令由它接收,并通过网络发送给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 小时前
政务外网整体设计方案(PPT)
大数据·数据库·web安全·系统安全·流程图·政务
2603_965148114 小时前
社区与学习资源:从入门到精通的API选品学习路径
数据库·人工智能·python·学习·数据挖掘
AI砖家4 小时前
安全进入 Agent Loop:2027 年 Coding Agent 的决胜点
数据库·安全·codex·vibecoding
wangqiaowq4 小时前
SQL server C盘空间占满的处理
数据库·sql
文人sec5 小时前
SQL基础入门笔记 | 从零基础到掌握核心查询语句
数据库·笔记·sql
数字新视界5 小时前
机房动环监控提升运维效率
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
SelectDB技术团队5 小时前
冷热分层从建到验:Storage Policy 创建、表级与分区级绑定、SHOW TABLETS 验证的完整命令
大数据·数据库·elasticsearch·搜索引擎·数据分析·apache doris·冷热分层
lambo mercy7 小时前
Day3:结构化输出
java·数据库·oracle
派小心.7 小时前
小程序分享链路中来源参数的传递校验
大数据·前端·数据库·人工智能·小程序·数据分析
Είναι η κοπέλα7 小时前
向量数据库与嵌入模型:Chroma/FAISS/Milvus 选型
数据库·milvus·faiss