【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
英文地址,請注明出處:http://en.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:二…