优化大型Redis Hash和Sorted集的内存使用

时间:2013-01-15 01:53:38

标签: nosql redis in-memory-database in-memory memory-optimization

作为分布式抓取工具的一部分,我们会将所有网址存储在 Redis排序集中,这是抓取队列和 Redis哈希(用于重复删除和标记已访问网址)。

对于我们希望在文件中访问的各种域,我们有大约11M个URL,占用 506 MB的磁盘空间

然而,当放入 Redis排序集时,同一组URL,优先级从整数11M开始一直下降到0,需要1.759 GB的RAM和 Redis哈希来自key:URL->值:相同的URL, 2.048 GB的RAM空间

redis服务器托管在AWS中的高内存(17GB)超大型EC2实例中。

我想知道是什么导致了Redis中的空间膨胀,可能是因为存储它们的效率低下,还是应该以某种方式优化内存以避免空间膨胀?任何改善记忆性能的建议都是gr8。在此先感谢您的帮助!

这是redis信息转储:

redis_version:2.4.14
redis_git_sha1:00000000
redis_git_dirty:0
arch_bits:64
multiplexing_api:epoll
gcc_version:4.6.3
process_id:739
uptime_in_seconds:329647
uptime_in_days:3
lru_clock:1603627
used_cpu_sys:9521.58
used_cpu_user:3165.06
used_cpu_sys_children:19535.11
used_cpu_user_children:126500.32
connected_clients:76
connected_slaves:0
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0
used_memory:12794713864
used_memory_human:11.92G
used_memory_rss:13586632704
used_memory_peak:16575849280
used_memory_peak_human:15.44G
mem_fragmentation_ratio:1.06
mem_allocator:jemalloc-2.2.5
loading:0
aof_enabled:0
changes_since_last_save:46321
bgsave_in_progress:1
last_save_time:1358213403
bgrewriteaof_in_progress:0
total_connections_received:1702
total_commands_processed:95112145
expired_keys:3488037
evicted_keys:0
keyspace_hits:43443780
keyspace_misses:38945
pubsub_channels:2
pubsub_patterns:0
latest_fork_usec:3820832
vm_enabled:0
role:master
db0:keys=116,expires=25

0 个答案:

没有答案