StackExchange.Redis 发送结构
StackExchange.Redis Send Structs
我是 redis 的新手,我想知道如何使用 StackExchange.Redis.
发送 class
或 struct
所以假设我想写
var redis = ConnectionMultiplexer.Connect("localhost");
var db = redis.GetDatabase();
db.StringSet(key, value);
这实际上只有在我的价值观是原始的情况下才有可能。那么有没有其他方法可以发送复杂类型而不将它们序列化为 json?
由于 Redis 不知道您的 class
或 struct
,您需要定义如何存储它。推荐的方法是将对象存储为散列,其中键是 属性 名称,值是 属性 值。请注意,这不支持对象图,例如嵌套集合或复杂类型。
根据 documentation on data types:
A hash with a few fields (where few means up to one hundred or so) is stored in a way that takes very little space, so you can store millions of objects in a small Redis instance.
或者,您可以自己序列化对象并将其存储为 string/byte[]
。 Json 是一种格式,它在数据中包含 属性 名称,非常适合版本控制。例如。如果添加了新的 属性,则您无需更改所有现有数据。缺点是占用了很多space。您也可以使用任何其他形式的序列化,例如binary serialization。
我是 redis 的新手,我想知道如何使用 StackExchange.Redis.
发送class
或 struct
所以假设我想写
var redis = ConnectionMultiplexer.Connect("localhost");
var db = redis.GetDatabase();
db.StringSet(key, value);
这实际上只有在我的价值观是原始的情况下才有可能。那么有没有其他方法可以发送复杂类型而不将它们序列化为 json?
由于 Redis 不知道您的 class
或 struct
,您需要定义如何存储它。推荐的方法是将对象存储为散列,其中键是 属性 名称,值是 属性 值。请注意,这不支持对象图,例如嵌套集合或复杂类型。
根据 documentation on data types:
A hash with a few fields (where few means up to one hundred or so) is stored in a way that takes very little space, so you can store millions of objects in a small Redis instance.
或者,您可以自己序列化对象并将其存储为 string/byte[]
。 Json 是一种格式,它在数据中包含 属性 名称,非常适合版本控制。例如。如果添加了新的 属性,则您无需更改所有现有数据。缺点是占用了很多space。您也可以使用任何其他形式的序列化,例如binary serialization。