是否使用 redis 里的复杂数据结构

2015-08-18 11:32:27 +08:00
 phithon

最近开发一个 python 的扫描器,存储数据使用的 redis
不过有点纠结,比如我的一个扫描结果是一个 dict

{"target":"http://xxx/","whois":"xxx@qq.com","real_ip":"127.0.0.1"}

这样的,我是先将他 json 化(或序列化)后以字符串的形式存入 redis 呢,还是使用 redis 内部的 Hashes 数据结构来存呢?
哪个效率比较高?全局考虑一下。

6091 次点击
所在节点    Redis
9 条回复
zts1993
2015-08-18 11:39:14 +08:00
存储的话上 mongo 啊

下面认真回答

用内部 hash table 可以节约内存
zts1993
2015-08-18 11:40:21 +08:00
@zts1993 hash 没有 table ,手误
shiny
2015-08-18 11:41:20 +08:00
如果你经常只需要取其中一个字段里的内容,可以考虑用 hash
tczzjin
2015-08-18 11:46:35 +08:00
如果你的一个 dict 里面的字段不超过 1W 个,那么整个存到一个 hash 非常好,ziplist,hashmap 等等的效率和内存 redis 内置的优化很赞
keakon
2015-08-18 12:17:52 +08:00
没特殊需求不要用一个 hash 存一个对象,会丢失数据类型,浪费内存。
est
2015-08-18 12:36:32 +08:00
需要对 hash 里的字段进行查询,修改就用 hash ,如果只是用来保存,整存整取,就存 json 字符串。
hcymk2
2015-08-18 12:59:21 +08:00
phithon
2015-08-19 17:19:04 +08:00
@keakon
@est
嗯,因为都是整存整取,所以存 json 比较好
memorycancel
2015-10-09 14:43:33 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/213996

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX