Lind.DDD.Repositories.Redis層介紹
之前已經發生了
大叔之前介紹過關于redis的文章,有(you)緩存,隊列,分(fen)布(bu)式pub/sub,數據集(ji)緩存以及倉儲redis的(de)實現(xian)等等,而今天在(zai)Lind.DDD的(de)持久化組件里,redis當然也(ye)有(you)一席(xi)之地(di),作為(wei)當今最(zui)紅的(de)key/value存儲機制,它在(zai)nosql的(de)陣營中發揮著無(wu)可代替的(de)作用!
下面是redis文(wen)章(zhang)系列的目錄,大家(jia)可以進行參考(kao),看目錄
Redis學習筆記~把redis放在DATA層,作為一種數據源,我認為更合理,也更符合我的面向對象原則
Redis學習筆記~是時候為Redis實現一個倉儲了,RedisRepository來了
Redis學習筆記~Redis事務機制與Lind.DDD.Repositories.Redis事務機制的實現
Lind.DDD里的倉儲模塊,Mongodb有一席之地
大叔的Redis倉儲結構
大叔在進行redis倉儲設計時,使用了redis事務機(ji)制來維持數據的一(yi)致性(xing),這種(zhong)事務要(yao)求它(ta)們屬于同(tong)一(yi)個redis連接(jie)對象,所(suo)以,在SetDataContext方法中實(shi)現(xian)了這種(zhong)業務邏輯
public void SetDataContext(object db) { try { //手動Redis數據(ju)庫對象,在redis事務時啟用(yong) redisDB = (IRedisClient)db; redisTypedClient = redisDB.GetTypedClient<TEntity>(); table = redisTypedClient.Lists[typeof(TEntity).Name]; } catch (Exception) { throw new ArgumentException("redis.SetDataContext要求db為IRedisClient類型"); } }
讓代(dai)碼去改變我們的生活,改變我們的世界吧!