Redis中嵌套结构的替代方案?

Eli*_*Eli 1 redis

我一直在遇到存储更复杂信息的情况,而不是Redis的任何简单数据结构.我仍然想使用Redis,但我想知道是否有人使用的标准替代品,理想情况下他们想使用嵌套结构?

Did*_*zia 8

你基本上有两个策略:

  • 您可以序列化复杂对象并将它们存储为字符串.我们建议使用json或msgpack作为序列化格式.这很容易从大多数客户端语言进行操作.如果需要服务器端访问,则服务器端Lua脚本可以轻松编码/解码此类对象,因为Redis是使用msgpack和json支持Lua编译的.

  • 您可以使用不同的键分割对象.而不是将user:id和复杂的数据结构存储到此id,您可以存储多个键,例如user:id,user:id:address_list,user:id:document_lists等...如果需要原子性,请使用流水线MULTI/EXEC块可用于保证数据一致性,并聚合往返.

请参阅此答案中的一个简单示例:

LPUSH命令是否可以处理从JSON初始化的记录?

最后,Redis不是面向文档的数据库.如果你真的有很多复杂的文档,也许你可以通过MongoDB,ArangoDB,CouchDB,Couchbase等解决方案更好地服务......