Redis: 占用内存比例简单测试
不同Redis 存储大小,应采用不同的Redis 架构,因此合理评估Redis 大小则起着举足轻重的作用。 当Redis 存储的数据超过几十G 的时候, 就应该考虑采用分片和集群的方式处理。 笔者采用的是线性测试方法,使用1024 kb 的文本文件,反复存入redis, 然后查看redis 内存,以此做的估算。
一 准备环境
1. linux 下安装好redis 环境
2. 准备 1024kb 的文本
3. Java 读取文件, 使用jedis 存入redis 数据库
package org.zgf.learn.jedis.cluster; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import org.junit.BeforeClass; import org.junit.Test; import redis.clients.jedis.Jedis; /** * 测试redis 占用内存 * @ClassName: TestSingle.java * @author zonggf * @date 2017年1月13日-下午2:50:38 */ public class TestSingle { private static Jedis jedis; @BeforeClass public static void init(){ String host = "192.168.145.100"; int port = 6379; String password = "123456"; jedis = new Jedis(host, port); jedis.auth(password); } @Test public void testMemory(){ String fileContent = this.readfile(); int start =91; int nums = 10; for(int i=0; i<nums; i++){ String key = "file_" + (start + i); jedis.set(key,fileContent); } } private String readfile(){ StringBuffer sb = new StringBuffer(); try{ File file = new File("files/hello.txt"); BufferedReader br = new BufferedReader(new FileReader(file)); String line = null; while((line = br.readLine()) != null){ sb.append(line); } br.close(); }catch (Exception e){ } return sb.toString(); } }
二 测试过程
1. keys:0 , redis 中没有任何key
2. keys:1, redis 中存放一个key , value 为1024kb 的文本文件
3. keys:30, redis 中存放30个相同的key
4. keys:60, redis 中存放60 个相同的key
5. keys:100, redis 中存放100 个相同的key
三 总结
在不压缩value 值的情况下, 1024kb 的文本文件,在redis 中占用内存基本上为1024kb 的2.5 倍。可以采用对 redis value 进行压缩的机制,节省redis 内存
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 美团在Redis上踩过的一些坑-4.redis内存使用优化
- 下一篇: 3.redis内存占用飙升