【Redis学习路|第一篇】初步认识Redis

概要: 深入探讨NoSQL数据库的核心特性,对比传统关系型数据库的差异,重点介绍Redis作为内存数据库的优势与应用场景。

请添加图片描述


文章目录

    • 认识 NoSQL
      • NoSQL vs SQL 对比
        • 1️⃣ 结构化 vs 非结构化
        • 2️⃣ 关联 vs 非关联
        • 3️⃣ 查询方式对比
        • 4️⃣ 事务特性
        • 5️⃣ 存储方式
        • 6️⃣ 扩展性
    • 认识 Redis
      • Redis简介
      • 核心特征
      • Redis优势
      • 作者信息
    • Redis安装指南
    • 🎉 总结


认识 NoSQL

NoSQL(Not Only SQL): 不仅仅是SQL,是相较于传统关系型数据库而言,具有显著差异性的特殊数据库类型,因此也称为非关系型数据库

NoSQL vs SQL 对比

NoSQL相较于非关系型数据库,有着六个本质的区别

1️⃣ 结构化 vs 非结构化
特性关系型数据库NoSQL数据库
数据结构结构化数据非结构化数据
约束严格的字段约束灵活的格式支持
修改成本高(锁表、业务影响)低(灵活调整)

关系型数据库特点:

  • 创建表时有严格的约束信息
  • 字段名、数据类型必须预先定义
  • 后期修改字段成本极高

NoSQL数据库特点:

  • 支持键值型、文档型、列类型、图格式
  • 格式灵活,适应业务变化
2️⃣ 关联 vs 非关联

关系型数据库: 表与表间存在外键关联

用户表
订单表
商品表

NoSQL数据库: 无关联,通过业务逻辑维护

{"id": 1,"name": "张三","orders": [{"id": 1,"item": {"id": 10,"title": "荣耀6","price": 4999}},{"id": 2,"item": {"id": 20,"title": "小米11","price": 3999}}]
}
3️⃣ 查询方式对比

关系型数据库: 基于SQL语句

SELECT id, age FROM tb_user WHERE id = 1

NoSQL数据库: 多种查询语法

# Redis
get user:1# MongoDB
db.user.find({_id: 1})# Elasticsearch
GET http://localhost:9200/users/1
4️⃣ 事务特性

关系型数据库: 满足ACID原则

  • Atomicity(原子性):事务要么全部成功,要么全部回滚
  • Consistency(一致性):事务前后数据库状态一致
  • Isolation(隔离性):并发事务相互隔离
  • Durability(持久性):事务提交后永久保存

NoSQL数据库: 实现BASE原则

  • Basically Available(基本可用)
  • Soft state(软状态)
  • Eventually consistent(最终一致性)
5️⃣ 存储方式
特性关系型数据库NoSQL数据库
存储介质磁盘存储内存存储
IO操作大量磁盘IO内存读写
性能受磁盘限制内存速度
6️⃣ 扩展性

关系型数据库: 垂直扩展(主从模式)

  • 主从数据一致,用于数据备份
  • 受机器性能限制

NoSQL数据库: 水平扩展

  • 通过哈希计算分散存储
  • 解决内存大小限制问题

对比总结

特性SQLNoSQL
数据结构结构化非结构化
数据关联关联的无关联的
查询方式SQL查询非SQL
事务特性ACIDBASE
存储方式磁盘内存
扩展性垂直水平
使用场景1. 数据结构固定
2. 对一致性、安全性要求高
1. 数据结构不固定
2. 对性能要求高
3. 需要高并发

认识 Redis

Redis简介

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

核心特征

特征说明
键值型Value支持多种数据结构,功能丰富
单线程每个命令具有原子性
低延迟基于内存、IO多路复用、良好编码
持久化支持数据持久化
集群支持主从集群、分片集群
多语言支持多种编程语言客户端

Redis优势

  • 1️⃣ 极高性能:基于内存操作,响应速度极快
  • 2️⃣ 原子性:单线程模型保证操作原子性
  • 3️⃣ 丰富数据类型:String、Hash、List、Set、ZSet等
  • 4️⃣ 持久化:RDB和AOF两种持久化方式
  • 5️⃣ 分布式:支持主从复制和集群模式
  • 6️⃣ 易用性:简单易用的API接口

作者信息

  • 作者:Antirez
  • 官网:官网地址

Redis安装指南

Redis超详细安装教程


🎉 总结

通过本文的学习,您已经掌握了:

  • ✅ NoSQL数据库的核心概念和特性
  • ✅ 关系型数据库与NoSQL的全面对比
  • ✅ Redis作为内存数据库的优势和应用
  • ✅ 不同场景下的数据库选择策略

下一步: 学习Redis中的相关数据结构与基本指令


💡 提示:选择合适的数据库是系统架构设计的关键一步,理解各种数据库的优缺点有助于做出最佳决策。

本文为Redis学习笔记,持续更新中…

如果我的内容对你有帮助,希望可以收获你的点赞、评论、收藏。

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/91733.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/91733.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java局域网聊天室小项目架构思路

java局域网聊天室小项目架构思路 项目需求 创建一个局域网聊天系统,要求:用户在登录界面登录后进入聊天窗口界面,能实现多用户同时在线聊天,并且用户之间可以进行私聊 项目用到的技术栈 java网络编程java多线程java面向对象编…

vulhub-corrosion2靶机

1.安装靶机 https://download.vulnhub.com/corrosion/Corrosion2.ovahttps://download.vulnhub.com/corrosion/Corrosion2.ova 2.扫描IP 3.扫描端口 4.访问端口 首先访问一下80端口 访问一个8080端口发现是一个apache的页面 5.扫描目录与漏洞探测 那么我们扫描一下目录 80…

Mysql深入学习:慢sql执行

目录 慢查询日志 慢查询主要步骤 11种慢查询的场景分析 场景一:SQL 没有建立索引 场景二:索引未生效的典型原因 场景三:LIMIT 深分页导致性能下降 场景四:单表数据量过大导致 SQL 性能下降 场景五:ORDER BY 出现…

李宏毅深度学习教程 第8-9章 生成模型+扩散模型

【2025版】12 生成式对抗网络GAN 一 – 基本概念介紹_哔哩哔哩_bilibili 目录 1. GAN生成式对抗网络 2. GAN的训练 散度差异 3.WGAN 4.训练GAN 5. 如何客观评估GAN 6. 条件型生成(按照要求) 7. Cycle GAN(互转配对) 8. d…

1.8 axios详解

Axios的定义与核心特性Axios是一个基于Promise的现代化HTTP客户端库,主要用于在浏览器和Node.js 环境中发送HTTP请求,旨在简化异步数据交互流程。其核心特性如下:跨平台支持:在浏览器中通过XMLHttpRequest对象发送请求&#xff0c…

41.安卓逆向2-frida hook技术-过firda检测(五)-利用ida分析app的so文件中frida检测函数过检测

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于:图灵Python学院 工具下载: 链接:https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwdzy89 提取码&#xff1…

安卓调javaScript Not find method “forceLogout“ implementatidsignature or namesp

核对一下是否实现对应的javaScript或者javaScript的方法参数对不对, 在这里插入图片描述我这里一开始实现了这个方法但是没有给参数,一直报异常,后台说token没给就查token的问题,最后发现是搞偏了,两个原因&#xff0c…

【Linux网络】:UDP(传输层协议)

目录 一、铺垫知识 1、传输层 2、端口号 2.1、五元组表示 一个进程通信 2.2、端口号范围划分 2.3、知名端口 2.4、查看端口号 2.5、问题 3、pidof & netstat 命令 ①netsate 命令 ②pidof命令 二、UDP协议 1、UDP协议格式 2、UDP报文 1.1、UDP数据封装的过…

Effective C++ 条款19: 设计class犹如设计type

Effective C 条款19:设计class犹如设计type核心思想:设计新的class时,应当像语言设计者设计内置类型一样慎重,考虑对象的创建、销毁、初始化、拷贝、类型转换等所有方面。 ⚠️ 1. 类设计的关键问题域 对象生命周期管理&#xff1…

《汇编语言:基于X86处理器》第11章 MS-Windows编程(3)

本章展示的是如何用32 位Microsoft Windows API进行控制台窗口编程。应用编程接口(API:ApplicationProgramming Interface)是类型、常数和函数的集合体,它提供了一种用计算机代码操作对象的方式。本章将讨论文本I/O、颜色选择、时间与日期、数据文件I/O,…

在 macOS 上通过 Docker 部署DM8 (ARM 架构)

概述 达梦数据库 (DM8) 无法直接在 Apple macOS 操作系统上原生安装,通常需要通过虚拟机(如 Parallels Desktop、VMware Fusion)进行部署。另一种更轻量级且受 macOS 支持的方案是利用 Docker 容器技术来构建开发与测试环境。本文档将详细介…

网络协议之路由是怎么回事?

写在前面 要想去外面的世界看看, 就离不了路由器,而路由器工作的原理就是路由,那么具体是怎么路由的呢?本文就一起来看下这部分内容。 1:路由的配置 配置一条路由无非就是在配置以下三个信息: 1:包要去哪里&#x…

2106. 摘水果,梳理思路

文章目录题目概要java 解法详解题目概要 在一个无限的 x 坐标轴上,有许多水果分布在其中某些位置。给你一个二维整数数组 fruits ,其中 fruits[i] [positioni, amounti] 表示共有 amounti 个水果放置在 positioni 上。fruits 已经按 positioni 升序排列…

深入理解消息队列(MQ)核心原理与设计精髓

引言:从一个“不堪重负”的订单系统说起想象一个简化的电商下单流程:用户点击“下单”后,系统需要:在订单数据库中创建一条记录。调用库存服务,扣减商品库存。调用营销服务,给用户发放积分和优惠券。调用通…

前端手撕题总结篇(算法篇——来自Leetcode牛客)

链表指定区域反转 找到区间(头和为 for循环当**时)->反转链表(返回反转过后的头和尾)->连接 function reverseBetween( head , m , n ) {//preEnd&cur&nextStart cur.next断开if(mn)return head;const vHeadNode…

从Excel到工时管理系统:企业如何选择更高效的工时记录工具?

还在为手工统计员工工时而头疼吗?月末堆积如山的Excel表格、反复核对的数据、层出不穷的差错,这些问题正在拖慢企业的发展步伐。8Manage工时管理系统发现,传统手工记录不仅耗费大量人力,更让宝贵的工时数据难以转化为有效的管理决…

Java设计模式之《命令模式》

目录 1、介绍 1.1、命令模式定义 1.2、对比 1.3、典型应用场景 2、命令模式的结构 2.1、组成部分: 2.2、整体流程 3、实现 3.1、没有命令模式 3.2、命令模式写法 4、命令模式的优缺点 前言 java设计模式分类: 1、介绍 1.1、命令模式定义 命…

【动态规划算法】路径问题

什么是动态规划算法动态规划(Dynamic Programming,简称 DP)是一种通过分解复杂问题为重叠子问题,并存储子问题的解以避免重复计算,从而高效求解具有特定性质(重叠子问题、最优子结构)问题的算法…

Java基本技术讲解

一、基础语法三要素 暂时无法在飞书文档外展示此内容 🔑 黄金法则​:每个变量都要声明类型!二、程序逻辑控制(游戏行为核心) 条件判断:if-else - “岔路口选择” // 捡到金币逻辑 if (isTouching(Coin.clas…

【网络基础2】路由器的 “两扇门”:二层接口和三层接口到底有啥不一样?

目录 前言:路由器不是只有 “插网线的口” 一、先搞懂一个基础:路由器是 “网络交通枢纽” 二、二层接口:“小区内部的单元门”,只认 “住户身份证” 1. 啥是二层接口? 2. 用 “小区内部串门” 理解二层接口 步骤 1:手机打包数据,写上 “收件人身份证” 步骤 2:二…