redis学习记录07-降低内存占用
来源:互联网 发布:2017年大学生就业数据 编辑:程序博客网 时间:2024/05/17 23:24
背景
一个redis服务器,内存是有限的,那么能够存储的内容也是有大小限制的.
解决方案
短结构
概念
redis为列表,集合,散列和有序集合提供了一组配置选项,可以让redis以更加解压空间的形式存储长度较短的结构,即成为 短结构.
配置选项
在redis配置文件中不同的结构都存在各自的配置
list-max-ziplist-entries 512list-max-ziplist-value 64hash-max-ziplist-enries 512hash-max-ziplist-value 64zset-max-ziplist-enries 512zset-max-ziplist-value 64set-max-ziplist-enries 512set-max-ziplist-value 64
entries表示在使用压缩列表的情况下最多允许存储的元素数量为512
value 表示在使用压缩列表的情况下单个元素最多存储为64字节
当任意一个参数突破限制的时候,那么压缩列表的编码结果将被转换为其他的结果,而内存的占用也会增加
示例(以集合来举例说明,其他结果一样)
添加一个set 键 k1 , 为k1中添加500条数据(0-499)
String redisIp = "192.168.95.128"; int reidsPort = 6379; JedisPool jedisPool = new JedisPool(new JedisPoolConfig(), redisIp, reidsPort); Jedis j = jedisPool.getResource(); for(int i = 0 ; i < 500 ; i ++){ j.sadd("k1", i+""); }
查看k1 存在500条数据,k1 结果 : encoding:intset serializedlength:1010
192.168.95.128:6379> scard k1(integer) 500192.168.95.128:6379> debug object k1Value at:0x7f00d260f000 refcount:1 encoding:intset serializedlength:1010 lru:16275759 lru_seconds_idle:33
继续运行上面代码 在加入500条数据(500-999),注意把开始值结束值改一下
继续查看结果 发现encoding改成了hashtable,而且存储的空间变大了.
192.168.95.128:6379> scard k1(integer) 1000192.168.95.128:6379> debug object k1Value at:0x7f00d260f000 refcount:1 encoding:hashtable serializedlength:2874 lru:16276017 lru_seconds_idle:1
结论
当一个结果突破到了为压缩列表设置的限制条件时,redis自动将它转换成更为典型的底层结构类型。
使用压缩列表:节约存储空间,但是每次存储和读取需要压缩与解压缩,当量一旦上来会产生性能问题.
0 0
- redis学习记录07-降低内存占用
- 降低Winform 内存占用
- 降低oracle内存占用
- 降低进程内存占用
- 降低虚拟系统占用内存--未解决
- Winform程序降低占用内存的方法
- redis 占用内存
- redis内存占用说明
- Java学习记录:降低耦合度
- 3.redis内存占用飙升
- 怎么减少Redis内存占用
- 设置Redis最大占用内存
- 设置Redis最大占用内存
- FireFox火狐浏览器降低内存占用及相关参数配置
- 利用Empty.exe降低AutoHotkey占用的内存
- 减少php-cgi进程降低vps内存占用
- 减少php-cgi进程降低vps内存占用
- 如何降低Windows程序的内存占用量
- PHP 代码规范
- 试着写写
- poj1741 Tree
- ImageUtils工具类
- android中使用AIDL踩过的坑!!!!!!
- redis学习记录07-降低内存占用
- 菜鸟搭建Java环境的阿里云CentOS 7服务器所需要知道的一切(二)Tomcat & Mysql
- 以《巫师》为例谈小说为小说改版的游戏剧本提供了什么?
- 对抗神经网络(Adversarial Nets)的介绍[1]
- 开始写博客了!!!
- ios视频教程收集
- java问题解答高级篇
- 欢迎使用CSDN-markdown编辑器
- 持续集成工具集之一 Jenkins简介