【发布时间】:2023-04-05 05:48:01
【问题描述】:
要求: 具有 2-3 级嵌套的 Python 对象,其中包含整数、字符串、列表和字典等基本数据类型。 (没有日期等),需要在 redis 中针对密钥存储为 json。 将 json 压缩为字符串以降低内存占用的最佳方法是什么。 目标对象不是很大,平均有 1000 个小元素, 或转换为 JSON 时大约 15000 个字符。
例如。
>>> my_dict
{'details': {'1': {'age': 13, 'name': 'dhruv'}, '2': {'age': 15, 'name': 'Matt'}}, 'members': ['1', '2']}
>>> json.dumps(my_dict)
'{"details": {"1": {"age": 13, "name": "dhruv"}, "2": {"age": 15, "name": "Matt"}}, "members": ["1", "2"]}'
### SOME BASIC COMPACTION ###
>>> json.dumps(my_dict, separators=(',',':'))
'{"details":{"1":{"age":13,"name":"dhruv"},"2":{"age":15,"name":"Matt"}},"members":["1","2"]}'
1/有没有其他更好的压缩json的方法来节省redis中的内存(也确保之后的轻量级解码)。
2/ msgpack [http://msgpack.org/] 的候选人有多好?
3/ 我也可以考虑泡菜之类的选择吗?
【问题讨论】:
-
您的申请有什么要求?你需要性能吗?可靠性、一致性等?你会考虑redis的替代品吗?