先说一下工作场景,要求做一个服务,满足:处理千万级别数据,单个请求响应时间在20ms以下。由于是存储的数据格式为key:list[],所以很适合使用redis来存放数据,为了测试一下redis存储的效率问题,才有了这篇文章。
第一步:造数据。思路如下:(1)先产生三千万个key,为了解决随机函数不能很好平均分布的问题,采用两步走的方法来造3000W个key。首先,从key从1到3000万依次产生,解决数量问题。然后,再使用随机函数产生1000W数据,添加到这些key中。(2)为了提高效率,使用50个线程并发造数据,每个线程负责60万数据的入库工作。(3)对于其中的几种长度的key,插入1万条数据。【3000万数据,大约使用3G左右的内存,实体机内存为8G,分配给redis
4G】
第二步:计算访问速度。为了能比较准确地反映查询速度,产生1万个随机的key并进行访问,10000次get,大约用时15625ms,平均1.56ms一次。
查询时,对于key长度为14,且存有10000个数据的list,执行lrange(key,0, -1),时间为31ms,而key长度为10,且存有10000个相同数据的list,执行lrange(key,0, -1),时间为16ms。
插入时,list的key长度为14时插入10000个数据,用时23015ms,而key为10时,用时19875ms。
可见key长度增加4,查询时间由16ms上升到31ms,而插入一条记录的时间由1.9875ms上升到2.3015ms。
三点结论:
一:控制key的长度,尽量使用有意义且简短的词。
二:控制list的长度,尽量不要超过一万,如果可能超过一万,需要考虑过期删除机制。
三:redis占用的内存最好不要超过实际内存的50%,否则在插入时会有读取超时的情况。
测试环境 操作系统:Linux x86_64 内存8G,redis版本:2.4.18【最新为2.6.14http://redis.io】
分享到:
相关推荐
本文档为内部资料,redis2.4版本,针对运营部署人员阅读,傻瓜式操作,从无到有完整的部署流程
redis在windows上的客户端, 有32位和64位两个版本,直接点击运行使用,不需要安装!
memcache,mencached,php5.3.8,redis2.4,sphinx-1.0.4.tgz 资源下载
主要介绍了Redis中统计各种数据大小的方法,本文使用PHP实现统计Redis内存占用比较大的键,需要的朋友可以参考下
redis源码,可以正常运行,自己已经试过了,如果有需要别的版本的可以留言。我这边好几个版本的。
redis增删改数据 redis增删改数据 redis增删改数据redis增删改数据 redis增删改数据
三级联动,第一次从数据库拿,第二次从redis中拿
windows下的redis数据管理图形工具包含0.8和0.6
redis集群搭建(一主一从一哨兵)
众多语言都支持Redis,因为Redis交换数据快,所以在服务器中常用来存储一些需要频繁调取的数据,这样可以大大节省系统直接读取磁盘来获得数据的I/O开销,更重要的是可以极大提升速度。 拿大型网站来举个例子,...
1、新旧redis集群迁移 2、支持redis集群的存量和增量数据迁移 3、支持redis集群数据的离线迁移
redis-copy, 将一个redis数据库复制到另一个数据库 RedisCopy这个工具提供了一种将一个redis数据库的内容移动到另一个redis数据库的方法。 代码是由包含在redis源代码中的 redis-copy.rb 脚本插件激发的,但目标是...
redis配置文件
用途您可以通过gzip通过管道传输输出并将其发送到文件,以进行快速的非redis数据备份或导出/迁移到另一个系统。 例如: ./redis_to_json.py | gzip > redis_backup.json.gz这对于您正在使用但又不想丢失数据的应用...
java实现对Redis数据的导入和导出,可以实现从这个服务器copy到另一台Redis服务器上。
redis从安装到三主三从集群,帮助学习Redis!!!!!!!!!
傻瓜式的redis集群创建,里面附有word安装文档,需要docker环境,已经docker-compose环境,文件直接放在服务器上,然后解压,最后修改下ip直接运行
支持codis迁移数据到redis 支持codis迁移数据到redis cluster 支持redis迁移数据到redis 支持redis迁移数据到codis 支持增量同步数据
最近有个哥们在群里问,有一个日志,里面存的是IP地址(一行一个),如何将这些IP快速导入到Redis中。 我刚开始的建议是Shell+redis客户端。 今天,查看Redis官档,发现文档的首页部分...
Redis学习手册 Hash数据类型 doc Redis学习手册 Key操作命令 doc Redis学习手册 List数据类型 doc Redis学习手册 Set数据类型 doc Redis学习手册 Sorted Sets数据类型 doc Redis学习手册 String数据类型 doc Redis...