带有redis的messagepack,数据大小不大

时间:2018-04-30 08:49:52

标签: redis msgpack

Redis是一个数据结构存储,但仍建议使用message-pack(或protobuf)来序列化/反序列化数据。如果写入Redis的数据块不是很大,我会对Redis上的Messagepack感到困惑。

因为,Messagepack需要根据自己的协议打包和解包数据,并且肯定会产生一些成本,打包数据只会作为“字符串”数据类型存储在Redis上。

为了利用Redis作为数据结构服务器,可以编写一个薄层来直接读取/写入redis数据结构,就像在C ++和Python之间那样,然后确切地说消息包在哪里?

有人可以在redis的背景下阐明消息包吗?

的问候,
拉胡

免责声明 - 对Messagepack功能没有任何冒犯,我知道它非常棒: - )

1 个答案:

答案 0 :(得分:2)

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

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

我希望有所帮助。

免责声明:上述模块的作者,Redis极客并且有一条黑带工作,带有Redis' Lua;)