
最近开发一个 python 的扫描器,存储数据使用的 redis
不过有点纠结,比如我的一个扫描结果是一个 dict
{"target":"http://xxx/","whois":"[email protected]","real_ip":"127.0.0.1"} 这样的,我是先将他 json 化(或序列化)后以字符串的形式存入 redis 呢,还是使用 redis 内部的 Hashes 数据结构来存呢?
哪个效率比较高?全局考虑一下。
1 zts1993 2015-08-18 11:39:14 +08:00 存储的话上 mongo 啊 下面认真回答 用内部 hash table 可以节约内存 |
3 shiny PRO 如果你经常只需要取其中一个字段里的内容,可以考虑用 hash |
4 tczzjin 2015-08-18 11:46:35 +08:00 如果你的一个 dict 里面的字段不超过 1W 个,那么整个存到一个 hash 非常好,ziplist,hashmap 等等的效率和内存 redis 内置的优化很赞 |
5 keakon 2015-08-18 12:17:52 +08:00 没特殊需求不要用一个 hash 存一个对象,会丢失数据类型,浪费内存。 |
6 est 2015-08-18 12:36:32 +08:00 需要对 hash 里的字段进行查询,修改就用 hash ,如果只是用来保存,整存整取,就存 json 字符串。 |
7 hcymk2 2015-08-18 12:59:21 +08:00 |
9 memorycancel 2015-10-09 14:43:33 +08:00 http://redis.io/topics/memory-optimization#use-hashes-when-possible Use hashes when possible |