簡體   English   中英

ServiceStack.Redis搜索緩存

[英]ServiceStack.Redis searching cache

我已經使用ServiceStack.Redis幾天了,我的應用程序中的最后一個難題是搜索緩存。

我有一個簡單的對象

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Surname { get; set; }
    public int Age { get; set; }
    public string Profession { get; set; }
}

例如,我想退回所有姓喬的人,這些人年齡超過10歲

什么是更好的速度明智?

  1. 要針對將返回ID列表的數據庫運行查詢,然后通過Redis .GetByIds函數獲取匹配的記錄。

要么

  1. 由於RedisClient不具有本地Linq支持(沒有僅AsEnumerable iList)來運行GetAll()並執行進一步的過濾。

有人對此有經驗嗎 ?

我一直在同一個問題上掙扎,我的選擇是保存一組“輕型”數據,這些數據代表了我需要標識整個寄存器的屬性o我需要過濾全部數據的屬性,然后轉到數據庫以獲取其余的如果需要的話。

我剛開始使用redis,我知道這可能不是最好的選擇,但它比每次過濾數據庫都要好。

希望知道您是否找到了更好的解決方案:)

我認為Redis並不是此類查詢的理想選擇,它沒有索引,因此您可能最終會建立自己的索引以滿足速度要求。 這根本不是一個好主意。
因此,我將使用一個SQL數據庫,它可以幫助我解決此類查詢,甚至可以幫助解決有關Person類型的查詢。 然后,您只能使用Redis緩存在其中存儲查詢結果,因此您可以輕松地在它們之間進行分頁或排序之類的操作。 至少這是我們在應用程序中做到的方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM