.NET分散式緩存Redis從入門到實戰

来源:https://www.cnblogs.com/51net/archive/2018/01/10/8256793.html
-Advertisement-
Play Games

一、課程介紹 今天阿笨給大家帶來一堂NOSQL的課程,本期的主角是Redis。希望大家學完本次分享課程後對redis有一個基本的瞭解和認識,並且熟悉和掌握 Redis在.NET中的使用。本次分享課程包含以下知識點: 1、StackExchange.Redis (簡稱:SE)驅動在C#中Redis幾種 ...


一、課程介紹

今天阿笨給大家帶來一堂NOSQL的課程,本期的主角是Redis。希望大家學完本次分享課程後對redis有一個基本的瞭解和認識,並且熟悉和掌握 Redis在.NET中的使用。本次分享課程包含以下知識點:

1、StackExchange.Redis (簡稱:SE)驅動在C#中Redis幾種數據結構學習和使用。 

2、ServiceStack.Redis ( 簡稱: SS) 驅動在C#中Redis幾種數據結構學習和使用。

3、Redis主從集群伺服器搭建和學習。

4、在ASP.NET中Redis如何進行Session托管。

5、在C#中如何使用Redis的生產者/消費者。

6、在C#中如何使用Redis的發佈/訂閱功能。

7、在C#中如何使用Redis的事務、鎖。

如果您同樣對本次分享《.NET分散式緩存Redis從入門到實戰》課程感興趣的話,那麼請跟著阿笨一起學習吧。

廢話不多說,直接上乾貨,我們不生產乾貨,我們只是乾貨的搬運工。

二、概念名稱含義解釋

2.1、什麼是Redis?

Redis是一個開源的,使用C語言編寫,面向“鍵/值”對類型數據的分散式NoSQL資料庫系統,Redis純粹為應用而產生,它是一個高性能的key-value資料庫,特點是高性能,持久存儲,適應高併發的應用場景,並且提供了多種語言的API

Redis官網:https://redis.io/

多語言客戶端驅動下載:https://redis.io/clients

2.2、Redis特點

Redis 是完全開源免費的,遵守BSD協議,是一個高性能的key-value資料庫。 與其他 key - value 緩存產品有以下三個特點:

● Redis支持數據的持久化,可以將記憶體中的數據保存在磁碟中,重啟的時候可以再次載入進行使用。

● Redis不僅僅支持簡單的key-value類型的數據,同時還提供list,set,zset,hash等數據結構的存儲。

● Redis支持數據的備份,即master-slave模式的數據備份。

三、Redis For Windows安裝手冊

3.1、Redis 在Windows系統上的安裝

官網只提供linux版本的下載官網下載地址:http://redis.io/download

windows 版本的github下載地址:https://github.com/MSOpenTech/redis/tags

推薦大家下麵幾個學習Redis的網站:

Redis中文網:http://www.redis.net.cn/

可以線上編寫Redis指令的網站:http://try.redis.io/  http://doc.redisfans.com/

3.2、Redis伺服器主從集群的搭建

 

四、Redis幾種數據結構

1、String( 字元串 )

這是最簡單的Redis類型。如果只使用這種類型,Redis就像一個可持久化的Memcached伺服器。

2、List(列表)

Redis的List是基於雙向鏈表實現的,可以支持反向查找和遍歷。

常用案例:聊天系統、社交網路中獲取用戶最新發表的帖子、簡單的消息隊列、新聞的分頁列表、博客的評論系統。

3、Hash( 哈希 )

Hash是一個String類型的field和value之間的映射表,請見下圖,類似於.NET中的Hashtable和Dictionary。主要用來存儲對象,可以避免序列化的開銷和併發修改控制的問題。

4、Set( 集合 )

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

5、Sorted Set(有序集合)

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

五、Redis應用場景介紹

六、Redis在.NET中的使用

六、Redis實戰演練分享

1、StackExchange.Redis (SE)驅動在C#中Redis幾種數據結構學習和使用。 

2、ServiceStack.Redis (SS) 驅動在C#中Redis幾種數據結構學習和使用。

3、 Redis主從集群伺服器搭建和學習。

4、在ASP.NET中Redis如何進行Session托管。

5、在C#中如何使用Redis的生產者/消費者。

6、在C#中如何使用Redis的發佈/訂閱功能。

7、在C#中如何使用Redis的事務、鎖。

七、源碼線上學習和演示


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  •  對於java,其是不支持直接創建泛型數組的。當採用如下的方式去創建一個泛型數組時,其會出現錯誤,編譯無法通過的情況。 但是,在java中,其卻可以創建泛型類型的數組變數,如下所示的代碼,其並不會出現錯誤的情況。  一個問題是,我們想要創建一個泛型類型的數組變數,那麼應當怎麼辦? ...
  • assert 0.猜猜 (x < y and [x] or [y])[0] 實現什麼樣的功能? 若x<y為真,則返回x (參照兩邊為數的邏輯運算:A and B,若A為真,則返回B,反之,返回A A or B ,若A為真,則返回B,反之,返回A )(其中[X][0]表示列表中的第一個元素即X) 若x ...
  • 1. python特性(來自百度百科) 1) 解釋性:一個用編譯性語言比如C或C++寫的程式可以從源文件(即C或C++語言)轉換到一個你的電腦使用的語言(二進位代碼,即0和1)。這個過程通過編譯器和不同的標記、選項完成。 運行程式的時候,連接/轉載器軟體把你的程式從硬碟複製到記憶體中並且運行。而Py ...
  • 本文只討論二維空間中的曼哈頓距離與切比雪夫距離 曼哈頓距離 定義 設平面空間記憶體在兩點,它們的坐標為$(x1,y1)$,$(x2,y2)$ 則$dis=|x1-x2|+|y1-y2|$ 即兩點橫縱坐標差之和 煮個慄子 如圖所示,圖中$A,B$兩點的曼哈頓距離為$AC+BC=4+3=7$ 切比雪夫距離 ...
  • 前言: 之前將各層都拆分出去, 作為一個獨立的可替換的子模塊. 感覺比以前確實是靈活了一些. 不管是電商項目, 還是現在公司做的項目, 其中, 有很多的業務邏輯, 都是一樣的, 但是由於不在一個系統中, 大家需要進行重覆的工作. 有的拷貝還好, 但是有的, 沒法直接拷貝. 相當的蛋疼. 能不能, 將 ...
  • Dubbo簡介: Dubbo 是阿裡巴巴公司開源(以前不開源)的一個高性能優秀的服務框架, 使得應用可通過高性能的 RPC 實現服務的輸入和輸出功能, 可以和spring框架無縫集成. 那麼這裡, 啥是RPC啊? 這麼來說吧, 業務邏輯層和展現層不在同一臺電腦上, 甚至不在同一個城市, 當我展現層想 ...
  • 存在性和唯一性的證明以後再補。。。。 拉格朗日插值 拉格朗日插值,emmmm,名字挺高端的:joy: 它有什麼應用呢? 我們在FFT中講到過 設$n-1$次多項式為 $y=\sum_{i=0}^{n-1}a_i x^i$ 有一個顯然的結論:如果給定$n$個互不相同的點$(x,y)$,則該$n-1$次 ...
  • 游戲中角色擁有的屬性值很多,運營多年的游戲,往往會有很多個成長線,每個屬性都有可能被N個成長線模塊增減數值。舉例當角色戴上武器時候hp+100點,卸下武器時HP-100點,這樣加減邏輯只有一處還比較好控制,如果某天有個特殊功能當被某技能攻擊時,角色武器會被擊落,這樣就會出現減數值的操作不止一處。如果... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...