带有redis的消息包,其中数据量不大

messagepack with redis where size of data is not big

Redis 是一种数据结构存储,但仍然建议对 serialize/deserialize 数据使用消息包(或 protobuf)。如果写入 Redis 的数据块不是很大

,我有点混淆 Redis 之上的 Messagepack

因为,Messagepack 需要根据自己的协议打包和解包数据,这肯定会产生一些成本,打包的数据将仅作为 "string" 数据类型存储在 Redis 上。

要利用 Redis 作为数据结构服务器,可以将一个薄层直接写入 read/write to/from redis 数据结构让我们说在 C++ 和 Python 之间,然后消息包的确切位置适合吗?

有人可以阐明 redis 上下文中的消息包吗?

此致,
拉胡尔

免责声明 - 没有冒犯 Messagepack 功能,我知道它真的很棒 :-)

没有单一的答案,但我可以提供一些指导方针。

  • Redis 的基本数据类型是字符串 - 它是二进制安全的,最多可以容纳 0.5GB(在即将推出的版本中可能会更多)。
  • 键名是字符串,但您通常希望 a) 保持简短并且 b) 它们是访问您的数据的唯一方式,因此希望清晰易读且可重构。
  • 值可以是字符串。如果有效载荷已经是一个字符串——不需要 serialize/deserialize,只需按原样存储。常见示例:jpg 或 png 文件。
  • 如果您的应用已经在使用 msgpack(或 json 或 protobuff 或...),您可以存储序列化形式。
  • Redis 的 Lua 具有处理 json 和 msgpack 的内置库。
  • 有一些模块(例如 http://rejson.io)可以扩展它。

希望对您有所帮助。

免责声明:提到的模块的作者,Redis 极客,拥有使用 Redis 的黑带 Lua ;)