Redis基礎 應用 第三方支援元件總結

2022-01-12 14:16:01 字數 1436 閱讀 1277

這段時間一直在研究學習redis的相關知識,現在大概做下總結吧

首先,redis的基礎方面,不說配置,就單單說下redis資料型別:

redis 五大資料型別有string 型別,hash 型別,list 型別,set 型別,zset(sortedset)型別。其中常用的是前三個。

string 是 redis 最基本的型別,乙個key對應乙個value。

hash 是乙個鍵值對集合,和c# 的dictionary 類似。

redis hash 是乙個string 型別的 field 和 value 的對映表

list 型別

redis列表是採用來鍊錶來儲存的簡單字串列表,按照插入順序排序。新增元素一般從鍊錶兩端開始。一般訊息佇列的應用可以直接使用redis的list資料型別來做處理。獲取最新的10個使用者的資訊,在list鍊錶中只保留最新的10個資料,每次進來乙個新資料就刪除一條舊資料,從而實現節約資料資源,減少伺服器壓力。

set 型別

redis 的 set 是string型別的無序集合。它是通過hashtable實現實現的,用法和 list型別很相似。因為我們可以根據集合型別來做一些處理比如交並補集,具體應用場景:qq好友的推薦

zset 型別

redis的zset(sortedset)和set一樣也是string型別元素的集合,且不允許有重複的成員。由於是已序集合,可以應用到熱門帖子的場景,排序好之後,返回最新的最熱的前10個帖子。

對redis的資料型別有足夠的了解,可以應用到開發的很多場景,比如訊息佇列,優先佇列,秒殺,最新部落格的顯示等等。

.net對redis的支援還是很好的。一般我們用redis來儲存session資料,微軟給我們提供了乙個第三方元件:redissessionstateprovider。微軟官方還給我們提供了乙個基於redis的記憶體輸出快取的元件:redisoutputcacheprovider。所以的第三方redis元件一般都是基於redis客戶端實現的,一般是stackexchange.redis或是其餘的客戶端。網上有很多人封裝好了基於各個客戶端的類,我們可以自己去了解。

我一開始是使用redissessionstateprovider來儲存session的,其實也還是可以的。不過,後來改變了一種方式,我直接呼叫封裝好的stackexchange.redis類來做session處理。

// redis 分布式鎖問題

可以使用setnx分布式鎖,但是有個致命的缺點,因此可以嘗試使用set指令來解決該缺陷。使用set指令來做redis鎖,傳參分別是key, value, expiretime,nx。因為redis的操作是原子性的。

參考資料:

用redis來實現session儲存的乙個簡單demo

redis 快速入門

【新手總結】在.net專案中使用redis作為快取服務

session分布式共享 = session + redis + nginx

Android 啟動第三方應用

一 程式中呼叫其它程式,如下 在 中 com.x 是要開啟的程式包名,com.xx 是要開啟的activity 下面是實現 packageinfo pi getpackagemanager getpackageinfo packagename,0 intent resolveintent new i...

第三方登入

我的應用就可以通過token第三方應用獲取一些基本資訊了,我的應用在獲取到這些基本資訊之後,就可以在我的應用中建立乙個賬號了。下次使用地方登入獲取到的這些使用者資訊,就可以直接用來登入我的應用了。為什麼先返回code呢?這個返回的code只能夠使用一次。這個code是從qq的伺服器返回給 時,我們時...

第三方註冊

第三方註冊 一些as hss建立如下表中的 ifc過濾規則,當終端在 s cscf 上註冊成功後,s cscf 從hss ifc過濾規則 s cscf 檢測所有過濾規則,發現 中的規則要求 ue ims.test 這個終端發出初始註冊訊息後,需要 到 sip as.ims.test 應用伺服器,之後...