Redis簡介及其使用方法

2021-07-15 13:38:46 字數 1386 閱讀 3498

redis是乙個開源的key-value儲存,但又不僅僅是key-value儲存,用官網上的話來說,redis是乙個資料結構儲存,可用作資料庫、快取和訊息中介軟體。相對於傳統的key-value儲存memcached來說,redis具有如下特點:

這是最簡單的redis型別。如果只使用這種型別,redis就像乙個可持久化的memcached伺服器。

redis的list是基於雙向鍊錶實現的,即可以支援反向查詢和遍歷。

hash是乙個string型別的field和value之間的對映表,如圖1,類似於.net中的hashtable和dictionary。主要用來儲存物件,可以避免序列化的開銷和併發修改控制的問題。

set也是乙個列表,不過它的特殊之處在於它是可以自動排重的:當需要儲存乙個列表資料,而又不希望出現重複的時候,set是乙個很好的選擇(比如id的集合)。並且set提供了判斷某個成員是否在乙個set集合內的介面,這也是list所沒有的。

sorted set和set的使用場景類似,區別是sorted set會根據提供的score引數來進行自動排序。當你需要乙個有序的並且不重複的集合列表,那麼就可以選擇sorted set資料結構。常用案例:遊戲中的排行榜。

以下特性請重點看管道和事務。

redis管道是指客戶端可以將多個命令一次性傳送到伺服器,然後由伺服器一次性返回所有結果。管道技術在批量執行命令的時候可以大大減少網路傳輸的開銷,提高效能。

redis事務是一組命令的集合。乙個事務中的命令要麼都執行,要麼都不執行。如果命令在執行期間出現錯誤,不會自動回滾。

管道與事務的區別:管道主要是網路上的優化,客戶端緩衝一組命令,一次性傳送到伺服器端執行,但是並不能保證命令是在同乙個事務裡面執行;而事務是原子性的,可以確保命令執行的時候不會有來自其他客戶端的命令插入到命令序列中。

分布式鎖是控制分布式系統之間同步訪問共享資源的一種方式。在分布式系統中,常常需要協調他們的動作,如果不同的系統或是同乙個系統的不同主機之間共享了乙個或一組資源,那麼訪問這些資源的時候,往往需要互斥來防止彼此干擾來保證一致性,在這種情況下,便需要使用到分布式鎖。

發布訂閱是一種訊息通訊模式。redis作為乙個發布訂閱伺服器,在發布者和訂閱者之間起到了訊息路由的功能。訂閱者可以向redis伺服器訂閱自己感興趣的訊息型別,redis將訊息型別稱為通道(channel)。當發布者向redis伺服器傳送特定型別的訊息時,訂閱該訊息型別的所有client都會收到此訊息。

在redis 3.2版本中新增了地理資訊相關的命令,可以將使用者給定的地理位置資訊(經緯度)儲存起來,並對這些資訊進行操作。

在需要使用redis的專案中引用eredis.dll和efxcommon.dll。

站在巨人的肩膀上,**我朋友的文章。

gdb debug 使用方法簡介

編譯時必須加上引數 g 例 g g temp.cpp o temp.通過gcc編譯生成可執行檔案才能用gdb進行除錯。進入gdb介面 gdb temp.提示符變成 gdb 1 檢視檔案 在gdb中鍵入 l list 就可以檢視所載入的檔案 2 設定斷點 只需在 b 後加入對應的行號即可 這是最常用的...

gdb使用方法簡介

編譯時必須加上引數 g 例 g g temp.cpp o temp.通過gcc編譯生成可執行檔案才能用gdb進行除錯。進入gdb介面 gdb temp.提示符變成 gdb 1 檢視檔案 在gdb中鍵入 l list 就可以檢視所載入的檔案 2 設定斷點 只需在 b 後加入對應的行號即可 這是最常用的...

gdb使用方法簡介

編譯時必須加上引數 g 例 g g temp.cpp o temp.通過gcc編譯生成可執行檔案才能用gdb進行除錯。進入gdb介面 gdb temp.提示符變成 gdb 1 檢視檔案 在gdb中鍵入 l list 就可以檢視所載入的檔案 2 設定斷點 只需在 b 後加入對應的行號即可 這是最常用的...