数据量不大的带有redis的messagepack

数据量不大的带有redis的messagepack,redis,msgpack,Redis,Msgpack,Redis是一种数据结构存储,但仍然建议使用message pack(或protobuf)来序列化/反序列化数据。如果写入Redis的数据块不是很大,我有点混淆了Redis上的Messagepack 因为,Messagepack需要按照其自己的协议打包和解包数据,而且肯定会产生一些成本,打包的数据只能作为“字符串”数据类型存储在Redis上 利用ReIIS作为数据结构服务器,可以编写一个薄层直接读写ReDIS数据结构,在C++和Python之间进行说明,那么,消息包到底在哪里? 在redis的背

Redis是一种数据结构存储,但仍然建议使用message pack(或protobuf)来序列化/反序列化数据。如果写入Redis的数据块不是很大,我有点混淆了Redis上的Messagepack

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

利用ReIIS作为数据结构服务器,可以编写一个薄层直接读写ReDIS数据结构,在C++和Python之间进行说明,那么,消息包到底在哪里?

在redis的背景下,有人能解释一下消息包吗

问候,
拉胡尔


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

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

  • Redis的基本数据类型是字符串-它是二进制安全的,最多可以容纳0.5GB(在即将发布的版本中可能会更多)
  • 键名是字符串,但通常您希望a)保持em简短,b)它们是访问数据的唯一方法,因此希望数据清晰易读且可重建
  • 值可以是字符串。如果负载已经是一个字符串-不需要序列化/反序列化,只需按原样存储即可。常见示例:jpg或png文件
  • 如果您的应用程序已经在使用msgpack(或json或protobuff或…),则可以存储序列化表单
  • Redis的Lua有内置的libs来处理json和msgpack
  • 有一些模块(例如)可以扩展该功能
我希望这有帮助


免责声明:上述模块的作者,Redis极客,与Redis'Lua;)一起使用黑带

我使用MessagePack作为redis的密钥。它包含在name:string和id:64位无符号整数中。在本例中,我使用str和integer的MessagePack数组。我通过redis上的EVAL命令使用luacmsgpack函数。pros的id比字符串小,并且易于来回转换。谢谢!这符合我当前的用例,我必须处理字符串值,所以我现在跳过序列化/反序列化步骤(messagepack)。