如何在redis中存储列表的python dict?

the*_*e M 3 python redis

我有一个 python 字典,其中每个键对应一个向量 id,值包含一个 n 维向量作为列表。我想存储和检索数据以执行数学运算。例如

{
1121:[5.333,1.637,3.323],
3442:[1.32,0.233,4.04],
.
.
.

}
Run Code Online (Sandbox Code Playgroud)

Ita*_*ber 5

没有一种方法可以做到这一点。首先,请注意 Redis 的数据结构不可嵌套。然后,决定您需要为数据提供哪些模式。

  1. 如果您主要是读/写整个字典,最简单的方法是将其序列化(使用 Pickle、JSON 或其他任何方式)并将其作为普通字符串键存储在 Redis 中。
  2. 如果您只访问单个向量,则可以使用 Redis Hash 模拟字典结构,其中每个字段都是一个向量 id,值是序列化列表。

  • 或者你可以使用优秀的 ReJSON 模块,它可以让你在 redis 中存储 JSON 对象并直接操作它们。https://github.com/RedisLabsModules/rejson (2认同)
  • 无论如何都要避免 pickle,因为它会带来安全漏洞。 (2认同)