文档详情

redis-高速可扩展内存数据库试题.ppt

发布:2017-03-21约3.96千字共36页下载文档
文本预览下载声明
数据恢复 aof-rdb并存,启用aof恢复 只有rdb 只有aof 主从备份 mater slave1 slave2 slave3 slave4 slave5 slave6 主从备份-配置 Slaveof 66 6379 Slaveof no one Master非阻塞式提供同步 主从备份-原理 Slave:Sync Master:Dump、append Slave:load、write 客户端 c/c++/php/perl/python/objective-c等 Java客户端jedis http://redis.io/clients 分布式 暂无server端自动的sharding 客户端一致性做hash sharding 3.0版本五发布,目前版本是2.4.4 testpractice String 600w key 每个value为0.4k Hash 1 key,600万个数据对int,0.4k String 1000w key 每个value为0.4k Hash 1 key 1000万个数据对int,o.4k 以上测试均是在没有开启bgsave的情况下进行 testpractice CentOS release 6.2 4G memory 6G swap 4核Intel(R) Xeon(R) CPU E5506 @ 2.13GHz testpractice 600w key 472s完成全部写,写入速度12711c/s 内存消耗3095M,数据全部在内存 对于600万的key,以key轮询总共耗时434s,查询速度13824c/s testpractice 1 key 600w键值对 525s完成全部写,写入速度11428 c/s 内存消耗3127M,数据全部在内存 对于600万的field,以key和filed轮询总共耗时477s,查询速度12578c/s testpractice 1000w key 1007s完成全部写,写入速度9930 c/s 内存消耗5155M,数据3.2g在内存,1.7g在交换分区 对于1000万的field,以key和filed轮询总共耗时1970s,查询速度5076c/s 在内存使用到3.8g时开始使用swap testpractice 1 key 1000w键值对 1072s完成全部写,写入速度9328 c/s 共消耗5155M,数据3.1g在内存,1.6g在交换分区 对于1000万的field,以key和filed轮询总共耗时1726s,查询速度5793c/s 在内存使用到3.8g时开始使用swap testpractice 以上测试如果在开启bgsave的情况下,写入会导致耗时增长将近一倍 备份机与写入机分离 testpractice 如需bgsave,则需要注意memory+swap的消耗 在1000w的测试中,所有都bgsave不了 Bgsave,fork(),内存不够 Save可以dump出,不过是阻塞的 testpractice-实现关系 Select a.song_id,a.title,a.cover,a.area,a.singer_id,a.singer,a.style,a.vv as play_times,a.licensor,a.language from daquan_mv_info a where a.is_removed = 0 order by a.vv desc limit 20000, 30 耗时:1s从缓存mysql缓存 testpractice-实现关系 建立以daquan_mv_info为key的一个list,以查找元素为value 建立vv_$value为key,vv为value的string类型 $re=$redissort(daquan_mv_info,array(by=vv_*,sort=desc,limit=array(20000,30))); 耗时:0.4s QA Thanks iweb@ 对于单纯的io来说,单线程少去了锁机制和缓存一致性问题,但是如果使用计算的话,单线程是没有什么优势的,by the way,像这种数据库,本来也就是简单的io。 * 对于单纯的io来说,单线程少去了锁机制和缓存一致性问题,但是如果使用计算的话,单线程
显示全部
相似文档