【问题标题】:How rto add an object with ServiceStack Redis如何使用 ServiceStack Redis 添加对象
【发布时间】:2015-03-11 21:11:18
【问题描述】:

我第一次在我的 c# 应用程序中实现 ServiceStack Redis(版本 4),但在存储实体时遇到了问题。

我首先在下面的界面中实现了“add”方法:

public interface ICacheClient : IDisposable
    bool Add<T>(string key, T value, DateTime expiresAt);

public void Add<TValue>(string key, TValue value)where TValue : class, new()
{
   _redisClient.Add(_cachePrefix + key, value);
}

这似乎没有存储检索时返回 null 的对象:

_redisClient.GetById<TValue>(91876);

所以我实现了“存储”方法(存储相同的实体——(值和视频是相同的对象))并存储与上面相同的实体:

IEntityStore
   T Store<T>(T entity);

redisClient.Store(视频);

并通过以下方式检索它:

_redisClient.GetById&lt;TValue&gt;(91876);

现在我可以检索实体了。

我的问题是,为什么所描述的 store 方法会起作用而不是 add 方法?

我可以用 add 方法存储对象吗?

【问题讨论】:

    标签: redis servicestack.redis


    【解决方案1】:

    ICacheClient 上的 Add 方法要求您向缓存实体提供完整的密钥字符串,而 GetById 方法只需要 Id。

    ICacheClient 上的所有方法始终需要完整的缓存键来检索缓存数据。 IRedisClientIRedisTypedClient 上的高级 API 只能对 Entity 和 Id 进行操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-08
      • 2023-03-29
      相关资源
      最近更新 更多