エンティティの保存に問題があるため、初めて 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 メソッドではなく、説明されている store メソッドが機能するのはなぜですか?
add メソッドでオブジェクトを保存できますか?