我一直在遇到存储更复杂信息的情况,而不是Redis的任何简单数据结构.我仍然想使用Redis,但我想知道是否有人使用的标准替代品,理想情况下他们想使用嵌套结构?
你基本上有两个策略:
您可以序列化复杂对象并将它们存储为字符串.我们建议使用json或msgpack作为序列化格式.这很容易从大多数客户端语言进行操作.如果需要服务器端访问,则服务器端Lua脚本可以轻松编码/解码此类对象,因为Redis是使用msgpack和json支持Lua编译的.
您可以使用不同的键分割对象.而不是将user:id和复杂的数据结构存储到此id,您可以存储多个键,例如user:id,user:id:address_list,user:id:document_lists等...如果需要原子性,请使用流水线MULTI/EXEC块可用于保证数据一致性,并聚合往返.
请参阅此答案中的一个简单示例:
最后,Redis不是面向文档的数据库.如果你真的有很多复杂的文档,也许你可以通过MongoDB,ArangoDB,CouchDB,Couchbase等解决方案更好地服务......
| 归档时间: |
|
| 查看次数: |
2993 次 |
| 最近记录: |