redis和ssdb读取性能对比

最近关注了一下ssdb,他的特点是基于文件存储系统所以它支撑量大的数据而不因为内存的限制受取约束.从官网的测试报告来看其性能也非常出色和redis相当,因此可以使用他代表redis来进行k-v数据业务的处理.想法总是美好的,不过现实中就可能非常骨感.

以于针对Redis和ssdb的几个读操进行一个简单的性能测试对比,这个测试不是直接在本机调用Redis和ssdb. 而是通过一个程序在别的服务器上调用.测试指令(get,hget,lregion)以下是测试结果截图

测试代码

 private void HGetHandler(RedisClient e)
        {
            while (mRuning)
            {
                long index = System.Threading.Interlocked.Increment(ref mIndex);
                ProtobufKey key = "user_" + Data.Import.Users[(int)(index % Data.Import.Users.Count)].Name;
                key.Get<Model.Order, Model.Employee, Model.Customer>(e);
                System.Threading.Interlocked.Increment(ref mCount);
            }
        }

        private void LRegionHandler1TO2(RedisClient e)
        {
            while (mRuning)
            {
                ProtobufList<Model.Order> list = "Orders";
                list.Range(1, 2, e);
                System.Threading.Interlocked.Increment(ref mCount);
            }
        }

        private void LRegionHandler50TO60(RedisClient e)
        {
            while (mRuning)
            {
                ProtobufList<Model.Order> list = "Orders";
                list.Range(50, 60, e);
                System.Threading.Interlocked.Increment(ref mCount);
            }
        }
        private void LRegionHandler100TO110(RedisClient e)
        {
            while (mRuning)
            {
                ProtobufList<Model.Order> list = "Orders";
                list.Range(100, 110, e);
                System.Threading.Interlocked.Increment(ref mCount);
            }
        }

        private  void GetHandler(RedisClient e)
        {
            while (mRuning)
            {
                long index = System.Threading.Interlocked.Increment(ref mIndex);
                ProtobufKey key = "user_" + Data.Import.Users[(int)(index % Data.Import.Users.Count)].Name;
                key.Get<Model.User>(e);
                System.Threading.Interlocked.Increment(ref mCount);
            }
        }

从测试结果看来差距还是非常明显,并不象官网那样说得这么理想.虽然SSDB效率上不如REDIS,但其基于磁盘存储有着其最大的优势,毕竟很多业务数据远超过服务器内存的容量.

redis和ssdb读取性能对比

时间: 2024-10-23 14:21:20

redis和ssdb读取性能对比的相关文章

java io读取性能对比

背景 从最早bio的只支持阻塞的bio(同步阻塞) 到默认阻塞支持非阻塞nio(同步非阻塞+同步阻塞)(此时加入mmap类) 再到aio(异步非阻塞) 虽然这些api改变了调用模式,但真正执行效率上是否也会有所不同,对此进行了此次java io的性能测试 首先从github上找到了2个项目,然后自己也实现了一个性能对比的实现,以便熟悉各种api 项目1: https://github.com/stateIs0/io.benchmark https://www.jianshu.com/u/4342

Ehcache/Redis/Tair缓存性能对比[转载]

FW : http://xulingbo.net/?p=434 版权归许令波所有.此处只是一个转载. 后面介绍的不同方式都有测试数据,这些测试数据都是在同一的测试环境下得出的测试结果: 测试机器的配置如下: 64位5核CPU, E5620 @ 2.40GHz,内存8G CDN端缓存 由 于计数器的价值并不在,具体的值是多少,尤其是对一些大访问量的商品来说个位或者十位的数据并没有什么意义,所以对这些热门商品的计数器访问可以采用定时 更新的办法,可以将计数器的值直接缓存在CDN上或者后端Nginx的

Go_18: Golang 中三种读取文件发放性能对比

Golang 中读取文件大概有三种方法,分别为: 1. 通过原生态 io 包中的 read 方法进行读取 2. 通过 io/ioutil 包提供的 read 方法进行读取 3. 通过 bufio 包提供的 read 方法进行读取 下面通过代码来验证这三种方式的读取性能,并总结出我们平时应该使用的方案,以便我们可以写出最优代码: package main import ( "os" "io" "bufio" "io/ioutil"

Golang 中三种读取文件发放性能对比

Golang 中读取文件大概有三种方法,分别为: 1. 通过原生态 io 包中的 read 方法进行读取 2. 通过 io/ioutil 包提供的 read 方法进行读取 3. 通过 bufio 包提供的 read 方法进行读取 下面通过代码来验证这三种方式的读取性能,并总结出我们平时应该使用的方案,以便我们可以写出最优代码: package main import ( "os" "io" "bufio" "io/ioutil"

循环网络调用性能对比

NoSQL在批量读取时的性能对比,包括Memcached和Redis. 1,Memcached的循环和批量GET对比 1.1 for循环获取memcached数据 Map<String,String> result = new HashMap<String,String>(); for(int i=0, len=keys.length; i<len; i++){     result.put(keys[i], memcacheGet(keys[i])); } 1.2 使用ge

使用httpclient实现http链接池与使用HttpURLConnection发送http请求的方法与性能对比

使用httpclient实现http链接池与使用HttpURLConnection发送http请求的方法与性能对比 在项目中需要使用http调用接口,实现了两套发送http请求的方法,一个是使用apache的httpclient提供的http链接池来发送http请求,另一个是使用java原生的HttpURLConnection来发送http请求,并对两者性能进行了对比. 使用httpclient中的链接池发送http请求 使用最新的4.5.2版httpclient进行实现.在maven中引入 <

redis、memcached、mongoDB 对比与安装

一.redis.memcached.mongoDB 对比 Memcached 和 Redis都是内存型数据库,数据保存在内存中,通过tcp直接存取,速度快,并发高.Mongodb是文档型的非关系型数据库,其优势在于查询功能比较强大,能存储海量数据. Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态.数据库驱动网站的速度.Memcached 的分布式不是在服务器端实现的,而是在客户端应用中

回复:《golang VS php 性能对比》

连接:http://www.oschina.net/question/29420_138135 看到有一篇博文介绍Golang与PHP性能对比,在此回复一下.这测试结果明显是误导人的. 1,PHP未开启OpCache,那么每次都要读磁盘文件.并且编译PHP为OpCode.性能自然会差,开启OpCache试试吧. 2.php+redis一定要扩展版本的redis客户端,原因是redis扩展是长连接的,可以避免短连接带来的网络开销. 3.php-fpm或者Apache,就算只开20个进程.redis

TextFile SequencFile性能对比

首先所有的输入格式都继承FileInputFormat,对于TextFile和SequenceFile有对应的TextInputFormat和SequenceFileInputFormat. 我们先来看一下TextInputFormat的实现: public class TextInputFormat extends FileInputFormat<LongWritable, Text>   implements JobConfigurable {   private CompressionC