0

我第一次在我的 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<TValue>(91876);

现在我能够检索实体。

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

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

4

1 回答 1

0

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

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

于 2015-03-11T22:57:10.487 回答