Redis各种数据结构内存占用测试
启动时:(redis为空)
插入数据量都为100W(100W个key或者list中100W个值,或者1000个key,每个key中1000个值)
String
Key value
# Memory
used_memory:121763808
used_memory_human:116.12M
used_memory_rss:124956672
used_memory_peak:121762584
used_memory_peak_human:116.12M
used_memory_lua:31744
mem_fragmentation_ratio:1.03
mem_allocator:jemalloc-3.2.0
List
Key value如下
# Memory
used_memory:81375240
used_memory_human:77.61M
used_memory_rss:84156416
used_memory_peak:121762496
used_memory_peak_human:116.12M
used_memory_lua:31744
mem_fragmentation_ratio:1.03
mem_allocator:jemalloc-3.2.0
Set
Key value
# Memory
used_memory:89764296
used_memory_human:85.61M
used_memory_rss:94650368
used_memory_peak:153269416
used_memory_peak_human:146.17M
used_memory_lua:31744
mem_fragmentation_ratio:1.05
mem_allocator:jemalloc-3.2.0
ZSET
# Memory
used_memory:143119144
used_memory_human:136.49M
used_memory_rss:146919424
used_memory_peak:165802136
used_memory_peak_human:158.12M
used_memory_lua:31744
mem_fragmentation_ratio:1.03
mem_allocator:jemalloc-3.2.0
Hash
# Memory
used_memory:137763776
used_memory_human:131.38M
used_memory_rss:157798400
used_memory_peak:183714248
used_memory_peak_human:175.20M
used_memory_lua:31744
mem_fragmentation_ratio:1.15
mem_allocator:jemalloc-3.2.0
设置:
##ziplist中允许的条目个数
hash-max-ziplist-entries 512
##ziplist中每个条目(K-V)的V允许的最大字节数
hash-max-ziplist-value 64
##如果达到阀值,则重构为hashtable
# Memory
used_memory:21946472
used_memory_human:20.93M
used_memory_rss:25464832
used_memory_peak:183714248
used_memory_peak_human:175.20M
used_memory_lua:31744
mem_fragmentation_ratio:1.16
mem_allocator:jemalloc-3.2.0
结论:100W数据在key和value都在10Byte左右时,占用空间100M左右,若使用Hash的压缩列表特性,内存占用减少到1/5.
Redis各种数据结构内存占用测试的更多相关文章
- android应用内存占用测试(每隔一秒打印procrank的信息)
1.内存占用 对于智能手机而言,内存大小是固定的:因此,如果单个app的内存占用越小,手机上可以安装运行的app就越多:或者说app的内存占用越小,在手机上运行就会越流畅.所以说,内存占用的大小,也是 ...
- Map存储容量及内存占用测试
Integer a = 1; long start = 0; long end = 0; // 先垃圾回收 System.gc(); start = Runtime.getRuntime().free ...
- redis实战笔记(9)-第9章 降低内存占用
本章主要内容 1.短结构( short structure) 2.分片结构( shared structure) 3.打包存储二进制位和字节 本章将介绍3种非常有价值的降低Redis内存占用的 ...
- 选择合适Redis数据结构,减少80%的内存占用
redis作为目前最流行的nosql缓存数据库,凭借其优异的性能.丰富的数据结构已成为大部分场景下首选的缓存工具. 由于redis是一个纯内存的数据库,在存放大量数据时,内存的占用将会非常可观.那么在 ...
- 降低Redis内存占用
1.降低redis内存占用的优点 1.有助于减少创建快照和加载快照所用的时间 2.提升载入AOF文件和重写AOF文件时的效率 3.缩短从服务器进行同步所需的时间 4.无需添加额外的硬件就可以让redi ...
- C#中使用Redis不同数据结构的内存占有量的疑问和对比测试
最近在大量使用Redis来进行数据统计前的清洗和整理,每天的数据量超5千万+,在开发过程中,数据量小,着重注意业务规则的处理,在上线基本测试后发现了大量的问题,其中之一就是Redis存储数据过多,内存 ...
- 美团在Redis上踩过的一些坑-3.redis内存占用飙升(转载)
一.现象: redis-cluster某个分片内存飙升,明显比其他分片高很多,而且持续增长.并且主从的内存使用量并不一致. 二.分析可能原因: 1. redis-cluster的bu ...
- Redis主节点内存占用过高
0. 基本情况 Redis采用集群模式,560个主节点,主从比为1:1,单台机器上为16个节点.info memory观察到主节点A单个Redis内存used_memory_rss_human为9.2 ...
- [转帖]美团在Redis上踩过的一些坑-3.redis内存占用飙升
美团在Redis上踩过的一些坑-3.redis内存占用飙升 博客分类: 运维 redis redismonitor内存突增client listinfo 转载请注明出处哈:http://car ...
随机推荐
- C++ code: 将程序的输出,保存到txt文档中,且每35个数,自动换行
// write the predicted score into txt files ofstream file("/home/wangxiao/Downloads/caffe ...
- threading模块和queue模块实现程序并发功能和消息队列
简介: 通过三个例子熟悉一下python threading模块和queue模块实现程序并发功能和消息队列. 说明:以下实验基于python2.6 基本概念 什么是进程? 拥有独立的地址空间,内存,数 ...
- System.Threading.ThreadAbortException: 正在中止线程。
在 System.Threading.ThreadAbortException 中第一次偶然出现的"mscorlib.dll"类型的异常 "System.Threadin ...
- 关于C# 中的Attribute 特性
关于C# 中的Attribute 特性 作者: 钢钢 来源: 博客园 发布时间: 2011-01-09 23:30 阅读: 13921 次 推荐: 12 原文链接 [收藏] 摘要:纠结地说 ...
- jQuery Mobile_公司简介
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...
- 阿里DNS
二.阿里公共DNS http://www.alidns.com 全球统一服务ip: 223.5.5.5 223.6.6.6
- 查看SqlServer的内存使用情况
上一篇提到动态T-SQL会产生较多的执行计划,这些执行计划会占用多少内存呢?今天从徐海蔚的书中找到了答案.动态视图不仅可以查到执行计划的缓存,数据表的页面缓存也可以查到,将SQL整理一下,做个标记. ...
- com.opensymphony.module.sitemesh.filter.PageFilter 装饰页面
1.web.xml中配置: <filter> <filter-name>sitemeshFilter</filter-name> <filter-class& ...
- ORACLE 表函数实现
1.创建表对象类型. 在Oracle中想要返回表对象,必须自定义一个表类型,如下所示: create or replace type t_table is table of number; 上面的类型 ...
- spring 中事务的PROPAGATION_REQUIRED,Readonly的解释
一.事务传播行为种类 Spring在TransactionDefinition接口中规定了7种类型的事务传播行为, 它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播 ...