文档章节

redis list 不同编码类型造成内存占用及运行效率的差别

苗永超
 苗永超
发布于 2015/03/30 23:24
字数 445
阅读 1092
收藏 10

1. 简介

总所周知,redis中的list有两种编码结构,ziplist和linkedlist。两种编码结构的切换由下面的配置信息决定:

以上两个配置是默认的配置。

针对以上的配置,当列表对象保存的所有字符串元素的长度都小于64字节,并且列表对象保存的元素数量小于512时,list使用ziplist编码;不能满足这两种情况就是用linkedlist编码。

ziplist的特点是节省内存,linkedlist是一个双向列表,特点就是插入速度快,但是占内存。


2. 实测

正式开始我今天主要想发表的东西,虽不是什么了不起的东西,但是是我认认真真测试出来的结果,留个纪念吧。

测试方式: 

a. 一个key,分别对其进行rpush、lrange、ltrim三种操作;

b. rpush数据为80W个整型,每插入10W条记录记录一次此时的平均插入速率;

c. 每隔10W条记录进行一次lrange,查看占用时间;            

d. 全部数据更新成功后,开始测试ltrim;

e. 分两种编码结构进行测试,作对比;

以下是测试结果:

表格不好粘贴,就直接截图了

关于ziplist和linkedlist的内存占用,80W的数据,ziplist占用内存不到5M,而linked占用内存为37M+,内存占用相差7倍多。


3. 测试机器配置(非专业介绍,凑合看吧):

cpu: 24核心 Intel(R) Xeon(R) CPU E5-2643 v2 @ 3.50GHz

内存:128G

系统: CentOS release 6.6 (Final)


© 著作权归作者所有

共有 人打赏支持
苗永超
粉丝 14
博文 57
码字总数 14075
作品 0
海淀
后端工程师
私信 提问
Redis底部的几种存储结构(sds、dict、ziplist、intset、skiplist)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011734144/article/details/86086749 首先这里是原文: https://mp.weixin.qq.com/s?biz=MzA4NTg1MjM0Mg==&...

田野上的希望
01/08
0
0
可能是目前最详细的Redis内存模型及应用解读

Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分。 我们使用Redis时,会接触Redis的5种对象类型:字符串、哈希...

编程迷思
2018/07/16
0
0
深入学习Redis(1):Redis内存模型

前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分。 我们使用Redis时,会接触Redis的5种对象类型(字符串...

编程迷思
2018/03/27
0
0
深入了解一下Redis的内存模型!

一前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分。 我们使用Redis时,会接触Redis的5种对象类型(字符...

Java高级架构
2018/05/31
0
0
深入学习 Redis(1):Redis 内存模型

原文出处:编程迷思 前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分。 我们使用Redis时,会接触Redis的...

编程迷思
2018/03/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

大数据反欺诈技术架构

一年多以前,有朋友让我聊一下你们的大数据反欺诈架构是怎么实现的,以及我们途中踩了哪些坑,怎么做到从30min延迟优化到1s内完成实时反欺诈。当时呢第一是觉得不合适,第二也是觉得场景比较...

微笑向暖wx
27分钟前
1
0
flink-系统内部消息传递的exactly once语义

At Most once,At Least once和Exactly once 在分布式系统中,组成系统的各个计算机是独立的。这些计算机有可能fail。 一个sender发送一条message到receiver。根据receiver出现fail时sender如...

xtof
34分钟前
1
0
iOS程序执行顺序和UIViewController 的生命周期(整理)

说明:此文是自己的总结笔记,主要参考: iOS程序的启动执行顺序 AppDelegate 及 UIViewController 的生命周期 UIView的生命周期 言叶之庭.jpeg 一. iOS程序的启动执行顺序 程序启动顺序图 iO...

壹峰
36分钟前
1
0
配置网络、远程登录、Linux秘钥认证

配置网络 一台服务器安装完系统之后不管是为了方便管理还是业务需要,我们都要给它配置ip地址。让机器能够联网。在现实的生产环境的当中,往往我们给服务器配置的ip都是提前规划好的,但是在...

李超小牛子
40分钟前
1
0
dotConnect for Oracle入门指南(五):检索和修改数据

【下载dotConnect for Oracle最新版本】 dotConnect for Oracle(原名OraDirect.NET)建立在ADO.NET技术上,为基于Oracle数据库的应用程序提供完整的解决方案。它为设计应用程序结构带来了新的...

电池盒
40分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部