如何使用ServiceStack Redis添加对象

时间:2015-03-11 21:11:19

标签: redis servicestack.redis

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

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

IEntityStore
   T Store<T>(T entity);

redisClient.Store(视频);

并通过以下方式检索:

_redisClient.GetById<TValue>(91876);

现在我能够检索实体。

我的问题是为什么描述的商店方法有效而不是添加方法?

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

1 个答案:

答案 0 :(得分:0)

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

ICacheClient上的所有方法始终需要完整的缓存键来检索缓存数据。 IRedisClientIRedisTypedClient上的高级API只能在实体和ID上运行。