我对redis还不熟悉,我想知道如何发送带有class或struct的StackExchange.Redis。
所以我们假设我想写
var redis = ConnectionMultiplexer.Connect("localhost");
var db = redis.GetDatabase();
db.StringSet(key, value);这实际上是可能的,只有当我的价值是原始的。那么,在不将复杂类型序列化为json的情况下,还有其他方法来实现发送复杂类型吗?
发布于 2017-09-28 16:06:37
由于Redis不知道您的class或struct,所以您需要定义如何存储它。推荐的方法是将对象存储为散列,其中键是属性名,值是属性值。请注意,这不支持对象图,例如嵌套集合或复杂类型。
根据关于数据类型的文档:
一个包含几个字段的散列(其中很少的字段意味着上百个左右)以占用很少空间的方式存储,因此您可以在一个小Redis实例中存储数百万个对象。
或者,您可以自己序列化对象并将其存储为string/byte[]。Json是一种格式,它包括数据中的属性名称,这对于版本控制非常有用。例如,如果添加了一个新属性,则不需要更改所有现有数据。缺点是它占用了很大的空间。您也可以使用任何其他形式的序列化,例如二进制序列化。
https://stackoverflow.com/questions/46473597
复制相似问题