亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ServiceStack.Net Redis:存儲相關對象與相關對象ID

ServiceStack.Net Redis:存儲相關對象與相關對象ID

收到一只叮咚 2019-10-26 12:55:24
我的團隊決定通過ServiceStack.net Redis Client與Redis一起使用,作為我們正在處理的新的高流量網站的基礎存儲庫。我真的不確定在哪里可以找到有關此問題的文檔(對于一般的Redis文檔還是特定的ServiceStack.Net文檔,或兩者兼而有之)-實際上是否存在有關如何通過ServiceStack.Net實現Redis的文檔的權威來源您需要了解有關Redis概念和ServiceStack.Net概念的全部知識,還是我們需要分別集成這兩個方面的文檔才能獲得完整的概覽?我只是在努力如何在模型的對象圖中準確存儲相關對象。這是我要使用的簡單方案:系統中有兩個對象:User和Feed。用RDBMS術語來說,這兩個對象具有一對多的關系,即,一個User具有Feed對象的集合,而提要只能屬于一個User。Feed始終會通過Redis的用戶進行訪問,但有時我們希望通過feed實例來訪問該用戶。因此,我的問題是我們應該將相關對象存儲為屬性還是應該存儲Id相關對象的值?為了顯示:方法A:public class User{    public User()    {        Feeds = new List<Feed>();    }    public int Id { get; set; }    public List<Feed> Feeds { get; set; }    // Other properties}public class Feed{    public long Id { get; set; }    public User User { get; set; }}方法B:public class User{    public User()    {        FeedIds = new List<long>();    }    public long Id { get; set; }    public List<long> FeedIds { get; set; }     public List<Feed> GetFeeds()    {        return repository.GetFeeds( FeedIds );    }}public class Feed{    public long Id { get; set; }    public long UserId { get; set; }    public User GetUser()    {        return repository.GetUser( UserId );    }}以上哪種方法最有效?我已經在各種示例中看到了這兩種方法,但是我得到的印象是,我看到的某些示例可能不是最佳實踐。一些簡單的相關問題:如果我對對象進行更改,它將自動反映在Redis中還是需要保存?我假設是后者,但需要絕對清楚。如果我(可以)使用方法A,則對用戶對象X的更新會在引用的所有對象圖中反映到整個對象圖中,還是有必要在整個圖中保存更改?通過對象的接口存儲對象是否存在問題(即使用IList<Feed>而不是List<Feed>?抱歉,如果這些問題有點基本-直到2周前,我什至沒有聽說過Redis-更不用說ServiceStack了(我的團隊中也沒有任何人),所以我們真的是從零開始。
查看完整描述

2 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

現在,我想在另一個方面進行擴展,因為我已經與Redis合作了一段時間了:如果您的對象的集合(List<Feed>在上面的示例中)會變大,那么您將獲得每個集合的完整集合時間,你得到對象。這可能是帶寬的問題-在我們的情況下,每次登錄都會返回用戶以及該用戶的所有供稿項,這并不理想。關鍵是無論采用哪種對象關系方法,正確構造模型結構都是很重要的…… 

查看完整回答
反對 回復 2019-10-26
  • 2 回答
  • 0 關注
  • 777 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號