是否使用 protobuf-net 在存储在 Redis 中之前序列化原语

本文关键字:前序 序列化 原语 存储 protobuf-net 是否 Redis | 更新日期: 2023-09-27 18:31:30

我正在考虑实现 Redis 以在 ASP.Net Web 应用程序中缓存数据。

我想知道的是,在存储在 Redis 中之前,是否值得通过 Protobuf-net 序列化某些类型(字符串、布尔值、int 和其他原语),还是无论如何都会序列化?

我主要对存储/检索的速度感兴趣,所以我意识到对于某些字符串,protobuf 将通过减少网络流量来发挥作用,尽管序列化开销很小。

(是的,我知道字符串不是原始的)

如果有帮助,我正在使用StackExchange.Redis。

是否使用 protobuf-net 在存储在 Redis 中之前序列化原语

Redis 将所有值存储为二进制字符串,尽管 IIRC 有一些特殊的"字符串"大小写,作为 ASCII,看起来与整数完全相同。对于单个原始值,在存储空间方面不会有任何显着差异,因此如果方便,我会避免添加额外的protobuf-net层。这也可能允许 SE。Redis 在许多情况下也对值进行特殊处理 - 它避免了一些额外的分配,例如 MemoryStreambyte[] 。无论哪种方式都不会很大,但是既然他们不给你买任何东西:为什么要使用它们?

T结构化对象数据时,这个问题变得更加有趣。