redis五大基礎類型【重點】

之前寫過一點小知識:https://blog.csdn.net/qq_45927881/article/details/134959181?spm=1001.2014.3001.5501
參考鏈接
https://xiaolincoding.com/redis/data_struct/command.html#%E4%BB%8B%E7%BB%8D

在這里插入圖片描述

目錄

  • 1. string(字符串)
  • 2. Hash(哈希)
  • 3. List(列表)
  • 4. Set(集合)
  • 5. Zset(有序集合)

1. string(字符串)

String 是最基本的 key-value 結構,key 是唯一標識,value 是具體的值,value其實不僅是字符串, 也可以是數字(整數或浮點數),value 最多可以容納的數據長度是 512M
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
總結:
以下是Redis中string的主要特點和用法:

  1. 存儲字符串數據: string類型可以存儲任意長度的字符串數據,例如文本、JSON等。

  2. 存儲整數和浮點數: string類型還可以存儲整數和浮點數數據。當存儲整數時,Redis會對整數進行特殊處理,可以對整數進行自增、自減等操作。當存儲浮點數時,Redis會以字符串形式存儲,并支持對浮點數進行加減乘除等數學運算。

  3. 常見命令: Redis提供了一系列用于操作string的命令,包括:

  • SET:設置指定鍵的值。
  • GET:獲取指定鍵的值。
  • DEL:刪除指定鍵及其對應的值。
  • INCR:將指定鍵的值增加1。
  • DECR:將指定鍵的值減少1。
  • APPEND:在指定鍵的值后面追加字符串。
  1. 內存優化: Redis對于小字符串的存儲采用了一種優化策略,即使用SDS(Simple Dynamic String)來存儲字符串數據,可以減少內存的碎片化和浪費

  2. 應用場景: string類型在Redis中有著廣泛的應用場景,例如==緩存、計數器、分布式鎖==等。
    在這里插入圖片描述
    在這里插入圖片描述
    分布式鎖(還沒完全了解,待更新…)

共享 Session 信息

問題:通常我們在開發后臺管理系統時,會使用 Session 來保存用戶的會話(登錄)狀態,這些 Session 信息會被保存在服務器端,但這只適用于單系統應用,如果是分布式系統此模式將不再適用。

例如用戶一的 Session 信息被存儲在服務器一,但第二次訪問時用戶一被分配到服務器二,這個時候服務器并沒有用戶一的 Session 信息,就會出現重復登錄的問題,問題在于分布式系統每次會把請求隨機分配到不同的服務器
分布式系統單獨存儲 Session 流程圖:
在這里插入圖片描述
因此,需要借助 Redis 對這些 Session 信息進行統一的存儲和管理,這樣無論請求發送到哪臺服務器,服務器都會去同一個 Redis 獲取相關的 Session 信息,這樣就解決了分布式系統下 Session 存儲的問題。

分布式系統使用同一個 Redis 存儲 Session 流程圖:
在這里插入圖片描述

2. Hash(哈希)

Hash 是一個鍵值對(key - value)集合,其中 value 的形式如: value=[{field1,value1},…{fieldN,valueN}]。Hash 特別適合用于存儲對象。

Hash 與 String 對象的區別如下圖所示:

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
總結
在Redis中,hash是一種用于存儲鍵值對的數據結構,類似于字典或者關聯數組。每個hash可以存儲多個鍵值對,其中每個鍵都是唯一的,且與一個值關聯。

以下是Redis中hash的主要特點和用法:

  1. 存儲鍵值對: hash類型可以存儲多個鍵值對,其中每個鍵都是唯一的,且與一個值關聯。這些值可以是字符串、整數或者浮點數等類型。

  2. 內存優化: Redis對于小hash的存儲采用了一種優化策略,可以減少內存的碎片化和浪費。

  3. 支持多字段操作: Redis提供了一系列用于操作hash的命令,包括:

  • HSET:設置hash中指定字段的值。
  • HGET:獲取hash中指定字段的值。 -
    HDEL:刪除hash中指定字段及其對應的值。
  • HINCRBY:將hash中指定字段的值增加一個整數。
  • HGETALL:獲取hash中所有字段和對應的值。
  • HMSET:同時設置多個字段的值。 HMGET:同時獲取多個字段的值。
  1. 應用場景: hash類型在Redis中有著廣泛的應用場景,例如存儲對象的屬性、緩存數據、統計數據等。它可以將相關的數據組織在一起,方便進行管理和操作。

緩存對象
在介紹 String 類型的應用場景時有所介紹,String + Json也是存儲對象的一種方式,那么存儲對象時,到底用 String + json 還是用 Hash 呢?

一般對象用 String + Json 存儲,對象中某些頻繁變化的屬性可以考慮抽出來用 Hash 類型存儲

緩存對象的例子:

購物車
用戶 id 為 key(因為用戶id不會頻繁發生變化),商品 id 為 field(商品id會頻繁發生變化),商品數量為 value,恰好構成了購物車的3個要素,
如下圖所示。
在這里插入圖片描述
涉及的命令如下:

  • 添加商品:HSET cart:{用戶id} {商品id} 1
  • 添加數量:HINCRBY cart:{用戶id} {商品id} 1
  • 商品總數:HLEN cart:{用戶id}
  • 刪除商品:HDEL cart:{用戶id} {商品id}
  • 獲取購物車所有商品:HGETALL cart:{用戶id}
    當前僅僅是將商品ID存儲到了Redis 中,在回顯商品具體信息的時候,還需要拿著商品 id查詢一次數據庫,獲取完整的商品的信息

3. List(列表)

List 列表是簡單的字符串列表,按照插入順序排序,可以從頭部或尾部向 List 列表添加元素。
在這里插入圖片描述
在這里插入圖片描述
總結
在Redis中,List(列表)是一種常用的數據結構,它可以存儲一個有序的字符串列表。List中的每個元素都可以是一個字符串,它們按照插入順序排列,并且支持從兩端進行元素的插入和刪除操作
以下是Redis中List的主要特點和用法:

  1. 有序性: List中的元素按照插入順序排列,保持了元素的有序性。這意味著元素的順序可以被保留和控制,可以按照特定的順序進行訪問和處理。

  2. 動態增長: List是一個動態數據結構,它可以根據需要動態地增長和縮減。在List中添加元素時,List會自動增長以容納新的元素;而刪除元素時,List會自動縮減以釋放空間。

  3. 支持重復元素: List中可以包含重復的元素,即同一個值可以被多次插入到List中。

  4. 常見命令: Redis提供了一系列用于操作List的命令,包括:

  • LPUSH / RPUSH:將一個或多個元素從左端(LPUSH)或右端(RPUSH)插入到List中。
  • LPOP / RPOP:從左端(LPOP)或右端(RPOP)刪除并返回一個元素。
  • LRANGE:獲取List中指定范圍的元素。
  • LLEN:獲取List的長度(即元素個數)。
  • LINDEX:獲取List中指定索引位置的元素。
  1. 應用場景: List在Redis中有著廣泛的應用場景,例如消息隊列、任務隊列、最新消息列表、粉絲列表等。通過List可以方便地實現先進先出(FIFO)的數據結構,以及實時更新和處理數據列表

消息隊列

消息隊列的定義:
消息隊列(Message Queue)是一種基于消息的通信模式,用于在應用程序之間進行異步通信。它通常由消息生產者、消息隊列和消息消費者組成,消息生產者負責將消息發送到隊列中,消息消費者則從隊列中獲取消息并進行處理。

消息隊列的主要特點包括:

  1. 解耦和異步: 消息隊列可以實現生產者和消費者之間的解耦,即生產者不需要知道消費者的存在,反之亦然。生產者可以將消息發送到隊列中之后即可繼續執行其他任務,而消費者則可以從隊列中異步地獲取消息并進行處理。

  2. 削峰填谷: 消息隊列可以平滑處理系統的高峰流量和突發請求,通過緩沖消息并控制消息處理速率,可以有效地減輕系統負載和提高系統的穩定性。

  3. 數據傳輸和持久化: 消息隊列通常提供可靠的消息傳輸和持久化機制,可以確保消息的可靠傳遞和持久化存儲,即使在系統故障或者網絡中斷的情況下也不會丟失消息。

  4. 消息分發和路由: 消息隊列通常支持靈活的消息分發和路由策略,可以根據消息的類型、優先級或者目的地進行消息的分發和路由,從而滿足不同的業務需求。

  5. 隊列管理和監控: 消息隊列通常提供豐富的管理和監控功能,可以對隊列進行監控和管理,包括隊列的創建、刪除、監控隊列的狀態、消息數量、消費者數量等。

消息隊列在分布式系統、微服務架構、異步任務處理等場景中有著廣泛的應用,可以提高系統的可伸縮性、可靠性和性能,實現系統之間的解耦和異步通信

消息隊列在存取消息時,必須要滿足三個需求,分別是消息保序、處理重復的消息和保證消息可靠性

1、如何滿足消息保序需求?
List 本身就是按先進先出【FIFO】的順序對數據進行存取的,所以,如果使用 List 作為消息隊列保存消息的話,就已經能滿足消息保序的需求了。
List 可以使用 LPUSH + RPOP (或者反過來,RPUSH+LPOP)命令實現消息隊列。
在這里插入圖片描述

生產者使用 LPUSH key value[value…] 將消息插入到隊列的頭部,如果 key 不存在則會創建一個空的隊列再插入消息。
消費者使用 RPOP key 依次讀取隊列的消息,先進先出。

不過,在消費者讀取數據時,有一個潛在的性能風險點。

在生產者往 List 中寫入數據時,List 并不會主動地通知消費者有新消息寫入,如果消費者想要及時處理消息,就需要在程序中不停地調用 RPOP 命令(比如使用一個while(1)循環)。如果有新消息寫入,RPOP命令就會返回結果,否則,RPOP命令返回空值,再繼續循環。
所以,即使沒有新消息寫入List,消費者也要不停地調用 RPOP 命令,這就會導致消費者程序的 CPU 一直消耗在執行 RPOP 命令上,帶來不必要的性能損失。

為了解決這個問題,Redis提供了 BRPOP 命令。BRPOP命令也稱為阻塞式讀取,客戶端在沒有讀到隊列數據時,自動阻塞,直到有新的數據寫入隊列,再開始讀取新數據。 (類似go語言的管道channel)和消費者程序自己不停地調用RPOP命令相比,這種方式能節省CPU開銷。

2、如何處理重復的消息?(因為 List中可以包含重復的元素)

消費者要實現重復消息的判斷,需要 2 個方面的要求:

  1. 每個消息都有一個全局的 ID。
  2. 消費者要記錄已經處理過的消息的 ID。當收到一條消息后,消費者程序就可以對比收到的消息 ID 和記錄的已處理過的消息 ID,來判斷當前收到的消息有沒有經過處理。如果已經處理過,那么,消費者程序就不再進行處理了。

但是 List 并不會為每個消息生成 ID 號,所以我們需要自行為每個消息生成一個全局唯一ID,生成之后,我們在用 LPUSH 命令把消息插入 List 時,需要在消息中包含這個全局唯一 ID。

例如,我們執行以下命令,就把一條全局 ID 為 111000102、庫存量為 99 的消息插入了消息隊列:

LPUSH mq “111000102:stock:99”
(integer) 1

3、如何保證消息可靠性?

當消費者程序從 List 中讀取一條消息后,List 就不會再留存這條消息了。所以,如果消費者程序在處理消息的過程出現了故障或宕機,就會導致消息沒有處理完成,那么,消費者程序再次啟動后,就沒法再次從 List 中讀取消息了。

為了留存消息,List 類型提供了 BRPOPLPUSH 命令,這個命令的作用是讓消費者程序從一個 List 中讀取消息,同時,Redis 會把這個消息再插入到另一個 List(可以叫作備份 List)留存。

這樣一來,如果消費者程序讀了消息但沒能正常處理,等它重啟后,就可以從備份 List 中重新讀取消息并進行處理了。

基于 List 類型的消息隊列,滿足消息隊列的三大需求(消息保序、處理重復的消息和保證消息可靠性)。

  • 消息保序:使用 LPUSH + RPOP; (但是消費者循環讀取消息,如果這時候隊列中沒有此消息,那么消費者會讀取到空值,這不僅浪費資源,也沒有得到結果,需要改進,所以加了阻塞讀取)
  • 阻塞讀取:使用 BRPOP;
  • 重復消息處理:生產者自行實現全局唯一 ID;
  • 消息的可靠性:使用 BRPOPLPUSH

List 作為消息隊列有什么缺陷?

  1. List 不支持多個消費者消費同一條消息,因為一旦消費者拉取一條消息后,這條消息就從 List 中刪除了,無法被其它消費者再次消費。

  2. 要實現一條消息可以被多個消費者消費,那么就要將多個消費者組成一個消費組,使得多個消費者可以消費同一條消息,但是== List 類型并不支持消費組的實現==。

這就要說起 Redis 從 5.0 版本開始提供的 Stream 數據類型 了,Stream 同樣能夠滿足消息隊列的三大需求,而且它還支持「消費組」形式的消息讀取

4. Set(集合)

Set 類型是一個無序并唯一的鍵值集合【ist 是按照元素的先后順序存儲元素,且支持重復元素】,它的存儲順序不會按照插入的先后順序進行存儲。
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
總結
在Redis中,set是一種無序、唯一的集合數據結構,它可以存儲多個不重復的元素。Redis的set數據結構提供了高效的添加、刪除、更新、查找等操作,常用于存儲一組唯一的元素。

以下是Redis中set的主要特點和用法:

  1. 存儲唯一元素: set類型可以存儲多個不重復的元素,每個元素在set中只會出現一次,不會重復。

  2. 無序性: set類型中的元素是無序的,即存儲元素的順序不會影響元素的存儲和查找。

  3. Redis的set類型支持多個集合之間的交集、并集、差集等運算,可以方便地進行集合操作。

  4. 常見命令: Redis提供了一系列用于操作set的命令,包括:

  • SADD:向指定集合中添加一個或多個元素。
  • SREM:從指定集合中移除一個或多個元素。
  • SISMEMBER:檢查指定元素是否存在于集合中。
  • SMEMBERS:獲取集合中的所有元素。
  • SCARD:獲取集合中元素的數量。 SINTER:求多個集合的交集。
  • SUNION:求多個集合的并集。
  • SDIFF:求多個集合的差集。 集合運算:
  1. 應用場景: set類型在Redis中有著廣泛的應用場景,例如標簽系統、關注列表、粉絲列表等。它可以存儲一組唯一的元素,并提供高效的操作命令,非常適合于需要存儲一組唯一元素的場景。
    在這里插入圖片描述

點贊
Set 類型可以保證一個用戶只能點一個贊,這里舉例子一個場景,key 是文章id,value 是用戶id。

共同關注
Set 類型支持交集運算,所以可以用來計算共同關注的好友、公眾號等。
key 可以是用戶id,value 則是已關注的公眾號的id。

抽獎活動
存儲某活動中中獎的用戶名 ,Set 類型因為有去重功能,可以保證同一個用戶不會中獎兩次。
key為抽獎活動名,value為員工名稱,把所有員工名稱放入抽獎箱

5. Zset(有序集合)

Zset 類型(有序集合類型)相比于 Set 類型多了一個排序屬性 score(分值),對于有序集合 ZSet 來說,每個存儲元素相當于有兩個值組成的,一個是有序集合的元素值,一個是排序值。

有序集合保留了集合不能有重復成員的特性(分值可以重復:80、80、81、88、88等),但不同的是,有序集合中的元素可以排序。

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

總結
在Redis中,Zset(有序集合)是一種有序的數據結構,它類似于普通的集合(set),但每個元素都關聯了一個分數(score),使得元素可以按照分數進行排序。Zset中的元素是唯一的,但分數可以重復。(有序但可重復)

以下是Redis中Zset的主要特點和用法:

  1. 有序性: Zset中的元素是按照分數進行排序的,可以根據分數來獲取元素的排名和范圍。這種有序性使得Zset非常適合于需要按照某種順序來處理元素的場景。

  2. 元素唯一性: Zset中的每個元素都是唯一的,即使分數相同也可以存儲多個元素,但根據元素值來判斷唯一性。

  3. 支持范圍操作: Zset提供了一系列用于范圍操作的命令,例如根據排名獲取元素、根據分數范圍獲取元素等,可以方便地對Zset中的元素進行篩選和過濾。

  4. 常見命令: Redis提供了一系列用于操作Zset的命令,包括:

  • ZADD:向Zset中添加一個或多個元素。
  • ZSCORE:獲取指定元素的分數。
  • ZRANK:獲取指定元素的排名。
  • ZRANGE:根據排名范圍獲取元素列表。
  • ZRANGEBYSCORE:根據分數范圍獲取元素列表。
  1. 應用場景: Zset在Redis中有著廣泛的應用場景,例如排行榜、計分系統、事件調度等。它可以存儲帶有權重或者優先級的元素,并且可以根據分數來進行排序和過濾,非常適合于需要按照某種順序來處理元素的場景。
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述

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

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

相關文章

MySql安全加固:配置不同用戶不同賬號禁止使用舊密碼禁止MySql進程管理員權限

MySql安全加固:配置不同用戶不同賬號&禁止使用舊密碼&禁止MySql進程管理員權限 1.1 檢查是否配置不同用戶不同賬號1.2 檢查是否禁止使用舊密碼1.3 禁止MySql進程管理員權限 💖The Begin💖點點關注,收藏不迷路&#x1f496…

【c++】通訊錄管理系統

1.系統功能介紹及展示 2.創建項目 3.菜單實現 4.退出功能實現 5.添加聯系人—結構體設計 6.添加聯系人—功能實現 7.顯示聯系人 8.刪除練習人—檢測聯系人是否存在 9.刪除聯系人—功能實現 10.查找聯系人 11.修改聯系人 12.清空通訊錄 #include <iostream> #include <…

什么是VR虛擬社區|VR元宇宙平臺|VR主題館加盟

VR虛擬社區是指一種基于虛擬現實技術構建的在線社交平臺或環境&#xff0c;用戶可以在其中創建虛擬化的個人形象&#xff08;也稱為avatars&#xff09;并與其他用戶進行交流、互動和合作。在VR虛擬社區中&#xff0c;用戶可以選擇不同的虛擬場景和環境&#xff0c;如虛擬公園、…

fly-barrage 前端彈幕庫(3):滾動彈幕的設計與實現

項目官網地址&#xff1a;https://fly-barrage.netlify.app/&#xff1b; &#x1f451;&#x1f40b;&#x1f389;如果感覺項目還不錯的話&#xff0c;還請點下 star &#x1f31f;&#x1f31f;&#x1f31f;。 Gitee&#xff1a;https://gitee.com/fei_fei27/fly-barrage&a…

顯示器開機正常,插入HDMI線卻不顯示畫面,換了HDMI線還是不行?

環境&#xff1a; 惠普/P24VG4 DELL筆記本 問題描述&#xff1a; 顯示器開機正常&#xff0c;插入HDMI線卻不顯示畫面&#xff0c;換了HDMI線還是不行&#xff0c;是不是顯示器壞了&#xff1f; 解決方案&#xff1a; 1.前往顯示器設置菜單里面查看input 2.把輸入源默認設…

二百二十五、海豚調度器——用DolphinScheduler調度執行Flume數據采集任務

一、目的 數倉的數據源是Kafka&#xff0c;因此離線數倉需要用Flume采集Kafka中的數據到HDFS中 在實際項目中&#xff0c;不可能一直在Xshell中啟動Flume任務&#xff0c;一是項目的Flume任務很多&#xff0c;二是一旦Xshell頁面關閉Flume任務就會停止&#xff0c;這樣非常不…

案例研究|DataEase助力眾陶聯應對產業鏈數據可視化挑戰

佛山眾陶聯供應鏈服務有限公司&#xff08;以下簡稱為“眾陶聯”&#xff09;成立于2016年&#xff0c;是由34家陶瓷企業共同創辦的建陶行業工業互聯網平臺&#xff0c;股東產值占整個行業的22.5%。眾陶聯以數據賦能為核心&#xff0c;積極探索新的交易和服務模式&#xff0c;構…

ant-design-vue如何限制圖片上傳的尺寸?

handleBeforeUpload(file, fileList) {// fileList 只包含了當次上傳的文件列表&#xff0c;不包含已上傳的文件列表// 所以長度要加上已上傳的文件列表的長度const isLimit this.fileList.length fileList.length > this.limit;const indexOfFile fileList.findIndex(it…

C++ STL 之容器 vector 常見用法

一. 什么是vector vector為“變長數組”&#xff0c;即長度根據需要而自動改變的數組。 頭文件&#xff1a; #include <vector>using namespace std;單獨定義一個vector&#xff1a;vector<typename> name&#xff0c;相當于一維數組 name[SIZE] &#xff0c;其長…

mac-docker-php容器連接mac中的pgsql數據庫失敗以及出現table_msg存錯誤時的解決方法

以php中的thinkphp 5.1為例&#xff0c;php容器連接mac中的pgsql數據庫失敗時&#xff0c;出現如下錯誤 [7] PDOException in Connection.php line 528 SQLSTATE[08006] [7] could not connect to server: Connection refused Is the server running on host "localhost&…

Git 配置處理客戶端無法正常訪問到 github 原網站時,npm 下載依賴包失敗的問題

Git 配置處理客戶端無法正常訪問到 github 原網站時&#xff0c;npm 下載依賴包失敗的問題 使用 github 的鏡像網站地址或類似的替代產品地址&#xff0c;代替到 npm 拉取依賴包的 git 地址本地Git配置 例如&#xff1a;執行一下命令&#xff0c;則是以https://kgithub.com 替…

requests庫/urllib3庫返回WEB響應內容的處理差異

requests庫是一個廣泛使用的HTTP庫&#xff0c;用于發送HTTP請求和處理響應。 以下是requests庫中一些主要類和方法的詳細介紹&#xff1a;requests庫主要類和方法 類:requests.models.Response: status_code: 響應狀態碼。text: 以Unicode形式返回響應內容。content: 以字節形…

MySQL的主從同步原理

MySQL的主從同步&#xff08;也稱為復制&#xff09;是一種數據同步技術&#xff0c;用于將一個MySQL服務器&#xff08;主服務器&#xff09;上的數據和變更實時復制到另一個或多個MySQL服務器&#xff08;從服務器&#xff09;。這項技術支持數據備份、讀寫分離、故障恢復等多…

帝國cms7.5仿非小號區塊鏈門戶資訊網站源碼 帶手機版

帝國cms7.5仿非小號區塊鏈門戶資訊網站源碼 帶手機版 帶自動采集 開發環境&#xff1a;帝國cms 7.5 安裝環境&#xff1a;phpmysql 包含火車頭采集規則和模塊&#xff0c;采集目標站非小號官網。 專業的數字貨幣大數據平臺模板&#xff0c;采用帝國cms7.5內核仿制&#xff0…

LeetCode_22_中等_括號生成

文章目錄 1. 題目2. 思路及代碼實現&#xff08;Python&#xff09;2.1 暴力法2.2 回溯法 1. 題目 數字 n n n 代表生成括號的對數&#xff0c;請你設計一個函數&#xff0c;用于能夠生成所有可能的并且 有效的 括號組合。 示例 1&#xff1a; 輸入&#xff1a; n 3 n 3 …

Ai-WB2-32S在window下使用vs 和 msys2編譯以及燒錄

文章目錄 前言一、使用前準備第一步 安裝vscode第二步 安裝msys2 二、使用步驟1.打開MSYS2 MINGW64&#xff08;1&#xff09;在開始欄中找到MSYS2 MINGW64并打開&#xff08;2&#xff09;安裝git&#xff08;3&#xff09;安裝make&#xff08;4&#xff09;安裝好之后的文件…

前端面試練習24.3.1

一.進程和線程的區別 進程&#xff1a;是程序的一次執行過程,擁有獨立的內存空間 線程&#xff1a;是進程中的一個執行單元,共享所屬進程的內存空間和系統資源 進程&#xff08;Process&#xff09;和線程&#xff08;Thread&#xff09;是操作系統中的重要概念&#xff0c;它…

Redis 之五:Redis 的主從復制

概念 主從復制&#xff0c;是指將一臺 Redis 服務器的數據&#xff0c;復制到其他的Redis服務器。前者稱為主節點(master)&#xff0c;后者稱為從節點(slave)&#xff1b;數據的復制是單向的&#xff0c;只能由主節點到從節點。 默認情況下&#xff0c;每臺Redis服務器都是主節…

【0272】postgres內核分配 MyBackendId 實現原理(MyBackendId、MyProc、shmInvalBuffer)(三)

相關文章: 【0255】揭曉pg內核中MyBackendId的分配機制(后端進程Id,BackendId)(一) 【0256】揭曉pg內核中MyBackendId的分配機制(后端進程Id,BackendId)(二) 第一個backend process前,shmInvalBuffer的值情況 (gdb) p *shmInvalBuffer $153 = {minMsgNum =

webpack-cli

webpack-cli做了什么 webpack-cli 是 Webpack 提供的命令行工具&#xff0c;用于在命令行中執行 Webpack 相關的操作。webpack-cli 主要完成以下幾項工作&#xff1a; 解析和處理命令行參數&#xff1a;webpack-cli 負責解析用戶在命令行中輸入的參數&#xff0c;包括配置文件…