(资料图)
1、不适合引子: 在大数据时代,总希望存在一个Key-value存储机制,像HashMap一样在内存中处理大量(千万数量级)的key-value对,以便提高数据查找、修改速度。
2、 所以,我们会想到,Memcached和Redis这两个NoSQL数据库(严格来讲二者都不可以算作数据库)。
3、 Memcached是一个cache机制,当内存不足时会采用LRU机制,替换出陈旧数据,因此他不能保证我们的数据像在HashMap中一样不丢失,且没有数据持久化机制; 2、Redis克服了这一缺点,采取磁盘存储机制实现数据持久化。
4、但是,当数据量达到1千万左右时,由于内存中不能存储如此大量数目的数据,频繁同磁盘进行数据交换,导致数据查询、存储性能的急剧下降,将导致服务不可用。
5、 结论:当前还没有好的产品可以实现key-value保证数据完整性,千万级条数量级的,高效存储和查询支持产品。
6、 附录一:如下是转自其它网友的测试数据: 附录二:memcached 和redis的比较,和各自用途附录一:从图中可以猜测到还会有Redis 2.2.1 的测试,相同的测试环境,1K的数据量,使用ServiceStack.Redis客户端进行如下测试: 1) Set操作 2) Get操作 3) Del操作 每一套测试分别使用三个配置进行测试: 1) 绿色线条的是开启Dump方式的持久化,5分钟持久化一次 2) 蓝色线条是开启AOF方式的持久化,每秒写入磁盘一次 3) 红色线条是关闭任何的持久化方式 对于每一个配置都使用相同的其他配置: 1) 开启VM 最大内存10GB(128字节一。
本文到此分享完毕,希望对大家有所帮助。