Redis是AP的還是CP的?

redis是一個開源的內存數據庫,那么他到底是AP的還是CP的呢?

有人說:單機的是redis是cp的,而集群的redis是ap的?

但是我不這么認為,我覺得redis就是ap的,雖然在單機redis中,因為只有一個實例,他的一致性是有保障的,而一旦這個節點掛了,那么就沒有可用性可言了。這么看上去好像是一個cp系統。

但是cap是分布式場景中的理論,如果單機redis,那就沒啥分布式可言了。

p都沒有了,還談什么ap,cp呢?

那么,我們來說說,為啥redis是ap的呢?

redis的設計目的是高性能,高可擴展性和高可用性,redis的一致性模型是最終一致性,就是說在某個時間點讀取的數據可能并不是最新的,但是最終會達到一致的狀態。

redis沒有辦法保證一致性的主要原因是,因為它的分布式設計中采用的是異步復制,這導致在節點之間存在數據同步延遲和不一致的可能性。

也就是說,當某個節點上的數據發生改變時,redis會將這個修改操作發送給其他節點進行同步但由于網絡傳輸的延遲等原因,這些操作不一定會立即被其他節點接收到和執行,這就可能導致節點之間存在數據不一致的情況。

除此之外,redis的一致性還受到了節點故障的影響。當一個節點宕機時,這個節點上的數據可能無法同步到其他節點,這就可能導致數據在節點之間的不一致。雖然redis通過復制和哨兵等機制可以提高系統的可用性和容錯性,但是這些機制并不能完全解決數據一致性問題。

如果是同步復制的方式呢?

會不會就是cp了?? 這個疑問有明確的回答? ?體現在redis的官網上

也就是說。客戶端可以使用WAIT命令請求對特定數據進行同步復制。然而,WAIT僅能確保數據在Redis實例中有指定數據和副本中確認,它并不能將一組redis實例轉變為具有強一致性的cp系統:在故障轉移期間,已確認的寫操作仍然可能會丟失,這取決于redis持久化的具體配置。然而,使用wait后,在發生故障事件時丟失寫操作的概率大大降低,只在某些難以的故障模式下會發生。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/719804.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/719804.shtml
英文地址,請注明出處:http://en.pswp.cn/news/719804.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Git 基本操作 ?作區、暫存區、版本庫

創建本地倉庫: 創建 Git 本地倉庫 要提前說的是,倉庫是進行版本控制的?個文件目錄。我們要想對文件進行版本控制,就必須先創建?個倉庫出來。 首先touch 一個文件: 初始化倉庫: 創建完成后,我們會發現當前…

行列式錯題本

《1800》 1 階數和轉置 A是三階,B是4階,還有2這個系數 2 怎么啥也不會呀,委屈 行列式的拆分+提取系數 3

uniapp 安裝安卓、IOS模擬器并調試

一、安裝Android模擬器并調試 1.下載并安裝Android Studio。 2.創建簡單project。 3.安裝模擬器。 完成安卓模擬器的安裝。 4.啟動模擬器。 5.hbuilderx選擇模擬器、運行。 點擊刷新按鈕后出現模擬器,勾選并運行。 6.調試。 在 HBuilderX 中,項目啟…

每天一道leetcode:20.有效的括號(簡單;棧的經典題目)

?今日份題目 給定一個只包括 (,),{,},[,] 的字符串 s ,判斷字符串是否有效。 有效字符串需滿足: 左括號必須用相同類型的右括號閉合。 左括號必須以正確的順序閉合。 每個右括號都有一個對…

Nano 33 BLE Sense Rev2學習第一節——環境配置

參考文檔見Access Barometric Pressure Sensor Data on Nano 33 BLE Sense | Arduino Documentation 打開Arduino ide安裝開發板 選擇開發板 連接開發板到電腦,自動識別開發板端口,選擇端口

Python-類型檢查:typing模塊和mypy工具

Python-類型檢查&#xff1a;typing模塊和mypy工具 >>返回Python系列文章目錄<< 文章鏈接: Python中typing模塊 文章鏈接: PyCharm集成類型檢查mypy

ssh 一次執行多條命令(后臺運行)

文章目錄 1. 背景2. 命令2.1 命令分隔符2.2 多行腳本2.3 單行腳本 3. SSH 任務后臺運行 1. 背景 有時我們只需要遠程執行一次任務然后就關閉&#xff0c;而不需要長時間 ssh 登錄到遠程服務器。同時一次任務可能需要執行多條命令&#xff0c;那么我們該如何做呢&#xff1f; …

【Java】查看class文件的jdk編譯版本的兩種方式

一、使用文本編輯工具EditPlus 使用EditPlus打開該class文件&#xff0c;字符集選擇16進制&#xff08;Hex viewer&#xff09;。 僅看第一行數據&#xff0c;前面8個字節CA FE BA BE是固定的。 之后4個字節00 00 是次版本。 次版本后面的4個字節00 34 就是jdk版本。 jdk版本…

torch中的sort用法|torch.sort

今天在學習代碼時&#xff0c;發現有些深度學習的項目中使用到torch.sort()函數&#xff0c;在此記錄一下&#xff0c;方便自己的查閱. torch.sort() 官網給出了非常詳細的介紹&#xff0c;但是為了更進一步掌握這一用法&#xff0c;在此記錄一下。 具體官網鏈接如下&#xf…

華為認證HCIP報名條件有哪些?考試要求介紹

華為HCIP認證是很多網絡工程師的考證首選&#xff0c;尤其對于剛入行不久的網絡工程師們來說&#xff0c;這個證書無論是從難度出發還是從含金量出發&#xff0c;都是值得一考的。 那么如果想報名華為HCIP認證有哪些條件以及考試要求&#xff0c;華為HCIP的報名需不需要通過機…

鏡頭畸變模型及去畸變的原理

1. OpenCV去畸變undistortPoints原理解析 Opencv中鏡頭畸變包含了徑向畸變和切向畸變&#xff0c;本章節主要闡述鏡頭畸變模型以及去畸變的原理。 1.1 鏡頭畸變模型 參考opencv文檔 https://docs.opencv.org/3.1.0/d4/d94/tutorial_camera_calibration.html&#xff0c;opencv…

基于SpringBoot+MYSQL的醫護人員排班系統

基于springboot的醫護人員排班系統錄像 1、 前言介紹 隨著信息技術在管理上越來越深入而廣泛的應用&#xff0c;管理信息系統的實施在技術上已逐步成熟。本文介紹了醫護人員排班系統的開發全過程。通過分析醫護人員排班系統管理的不足&#xff0c;創建了一個計算機管理醫護人員…

LSA頭部結構簡述

LSA&#xff08;Link State Advertisement&#xff09;是一種用于路由協議頭部結構&#xff0c;用于在網絡中傳遞路由信息。 LSA頭部結構包含以下幾個字段&#xff1a; 1、LSA類型&#xff08;LSA Type&#xff09;&#xff1a;指示LSA的類型&#xff0c;不同類型的LSA用于傳遞…

Rabbitmq消息丟失-消費者消息丟失(二)

說明&#xff1a;消費端在處理消息的過程中出現異常&#xff0c;例如&#xff1a;業務邏輯異常&#xff0c;或者消費者被停機&#xff0c;或者網絡斷開連接等&#xff0c;以上等情況使消息沒有得到正確恰當的處理&#xff0c;也會使消息丟失。 分析&#xff1a;分析就是說明中…

Composer基礎使用 SDK包初始化

Composer 的工作原理 我們在使用 Composer 之前我們得了解一下它的實現原理&#xff0c;它主要由三個部分組成&#xff1a;命令行工具、包倉庫、代碼庫&#xff1a; Packagist 它是官方倉庫&#xff0c;也就是我們平常說的 Composer 源&#xff0c;它的作用是存儲這些包的信息…

參數引入和全局變量引入實現-目標和

LCR 102. 目標和 - 力扣&#xff08;LeetCode&#xff09; 分析題意&#xff0c;畫出決策樹&#xff0c;其他的思路都跟前面講過的類似&#xff1a; 全局變量引入實現&#xff1a; 全局變量的引入&#xff0c;需要手動處理回溯&#xff1b; class Solution {int ret; //…

從0到1全流程使用 segment-anything

從0到1全流程使用 segment-anything 一、安裝 anaconda 一、下載 anaconda 二、以管理員身份運行安裝 1、勾選 Just Me 2、統一安裝路徑(后續 python 等包也安裝至此目錄) 3、勾選 add to path 然后安裝即可。 三、修改 Anaconda 默認路徑及默認緩存路徑 Anaconda 默認下…

K8S集群誤刪master節點,master節點恢復完美解決

問題描述&#xff1a; 在單節點的master節點k8s集群中不小心誤刪了master節點導致集群不可用。 多節點應的恢復方式同樣也適用。 解決方案&#xff1a; 兩條命令解決master節點恢復&#xff0c;而不是去重裝k8s集群。 執行下面命令&#xff0c;生成節點的join命令 kubeadm t…

藍橋杯 9241.飛機降落

這道題本來作者以為是可以用一些小技巧進行暴力解法的&#xff0c;但是后來試了一下&#xff0c;不能過去全部數據。 下面是對半個的題解&#xff1a; #include<iostream> #include<stdio.h> #include<cstring> #include<cstdlib> #include<cmath…

掌握 Python: 每個開發人員都應該知道的6個秘密技巧

無論你是一名經驗豐富的開發者還是剛踏入編程世界的新手&#xff0c;Python 很可能已經引起了你的興趣。 它功能強大、靈活多變&#xff0c;而且非常用戶友好&#xff01;但是&#xff0c;讓我們更進一步吧! 在這篇博客中&#xff0c;我將揭示一些隱藏的 Python 技巧&#xff0…