如何将客户 class 对象数据存储到 Redis 缓存中?
How do I store customer class object data into Redis Cache?
在redis cache
中我们可以将数据存入key value pair
,
how do I store full object data ?
我想store customer information
在redis cache
我尝试了 google 并发现了以下内容,但我想知道如何使用它 任何人都可以详细说明吗?
public bool Add<T>(string key, T value, DateTimeOffset expiresAt) where T : class
{
var serializedObject = JsonConvert.SerializeObject(value);
var expiration = expiresAt.Subtract(DateTimeOffset.Now);
return database.StringSet(key, serializedObject, expiration);
}
public T Get<T>(string key) where T : class
{
var serializedObject = database.StringGet(key);
return JsonConvert.DeserializeObject<T>(serializedObject);
}
将对象序列化为字符串并将其按原样存储在 Redis 中当然是一种方法。
另一种方法是使用 Redis 数据结构为您的自定义对象建模。大多数情况下,这是使用 Hash 数据类型完成的,但是,根据对象的属性和您的 read/write 要求,您可以 want/need 使用其他类型。
还有一些帮助程序库几乎可以自动为您执行此操作 - 它们通常使用首字母缩写词 ORM
(Object Redis Mapper)或其变体。我不太熟悉 .NET 场景,但这里有一个您可以研究的可能方向:https://github.com/ServiceStack/ServiceStack.OrmLite
在redis cache
中我们可以将数据存入key value pair
,
how do I store full object data ?
我想store customer information
在redis cache
我尝试了 google 并发现了以下内容,但我想知道如何使用它 任何人都可以详细说明吗?
public bool Add<T>(string key, T value, DateTimeOffset expiresAt) where T : class
{
var serializedObject = JsonConvert.SerializeObject(value);
var expiration = expiresAt.Subtract(DateTimeOffset.Now);
return database.StringSet(key, serializedObject, expiration);
}
public T Get<T>(string key) where T : class
{
var serializedObject = database.StringGet(key);
return JsonConvert.DeserializeObject<T>(serializedObject);
}
将对象序列化为字符串并将其按原样存储在 Redis 中当然是一种方法。
另一种方法是使用 Redis 数据结构为您的自定义对象建模。大多数情况下,这是使用 Hash 数据类型完成的,但是,根据对象的属性和您的 read/write 要求,您可以 want/need 使用其他类型。
还有一些帮助程序库几乎可以自动为您执行此操作 - 它们通常使用首字母缩写词 ORM
(Object Redis Mapper)或其变体。我不太熟悉 .NET 场景,但这里有一个您可以研究的可能方向:https://github.com/ServiceStack/ServiceStack.OrmLite