`
liuxinglanyue
  • 浏览: 556982 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

MemcacheDB, Tokyo Tyrant, Redis performance test

阅读更多

I had tested the following key-value store for set() and get()

1. Test environment

1.1 Hardware/OS

2 Linux boxes in a LAN, 1 server and 1 test client
Linux Centos 5.2 64bit
Intel(R) Xeon(R) CPU E5410  @ 2.33GHz (L2 cache: 6M), Quad-Core * 2
8G memory
SCSI disk (standalone disk, no other access)

1.2 Software version

db-4.7.25.tar.gz
libevent-1.4.11-stable.tar.gz
memcached-1.2.8.tar.gz
memcachedb-1.2.1-beta.tar.gz
redis-0.900_2.tar.gz
tokyocabinet-1.4.9.tar.gz
tokyotyrant-1.1.9.tar.gz

1.3 Configuration

Memcachedb startup parameter
Test 100 bytes
./memcachedb -H /data5/kvtest/bdb/data -d -p 11212 -m 2048 -N -L 8192
(Update: As mentioned by Steve, the 100-byte-test missed the -N paramter, so I added it and updated the data)
Test 20k bytes
./memcachedb -H /data5/kvtest/mcdb/data -d -p 11212 -b 21000 -N -m 2048

Tokyo Tyrant (Tokyo Cabinet) configuration
Use default Tokyo Tyrant sbin/ttservctl
use .tch database, hashtable database

ulimsiz=”256m”
sid=1
dbname=”$basedir/casket.tch#bnum=50000000″ # default 1M is not enough!
maxcon=”65536″
retval=0

Redis configuration
timeout 300
save 900 1
save 300 10
save 60 10000
# no maxmemory settings

1.4 Test client

Client in Java, JDK1.6.0, 16 threads
Use Memcached client java_memcached-release_2.0.1.jar
JRedis client for Redis test, another JDBC-Redis has poor performance.

2. Small data size test result

Test 1, 1-5,000,000 as key, 100 bytes string value, do set, then get test, all get test has result.
Request per second(mean)

 

Store Write Read
Memcached 55,989 50,974
Memcachedb 25,583 35,260
Tokyo Tyrant 42,988 46,238
Redis 85,765 71,708

 

Server Load Average

 

Store Write Read
Memcached 1.80, 1.53, 0.87 1.17, 1.16, 0.83
MemcacheDB 1.44, 0.93, 0.64 4.35, 1.94, 1.05
Tokyo Tyrant 3.70, 1.71, 1.14 2.98, 1.81, 1.26
Redis 1.06, 0.32, 0.18 1.56, 1.00, 0.54

 

3. Larger data size test result

Test 2, 1-500,000 as key, 20k bytes string value, do set, then get test, all get test has result.
Request per second(mean)
(Aug 13 Update: fixed a bug on get() that read non-exist key)
 

 

Store Write Read
Memcachedb 357 327
Tokyo Tyrant 3,501 257
Redis 1,542 957

 

4. Some notes about the test

When test Redis server, the memory goes up steadily, consumed all 8G and then use swap(and write speed slow down), after all memory and swap space is used, the client will get exceptions. So use Redis in a productive environment should limit to a small data size. It is another cache solution rather than a persistent storage. So compare Redis together with MemcacheDB/TC may not fair because Redis actually does not save data to disk during the test.

Tokyo cabinet and memcachedb are very stable during heavy load, use very little memory in set test and less than physical memory in get test.

MemcacheDB peformance is poor for write large data size(20k).

The call response time was not monitored in this test.

本文出自 “后端技术” 博客,请务必保留此出处http://timyang.blog.51cto.com/1539170/307144

分享到:
评论

相关推荐

    memcachedb

    ### Memcachedb:全面解析与应用实践 #### 一、Memcachedb简介 **Memcachedb** 是一种分布式键值存储系统,专为持久化设计。它不是传统的缓存解决方案,而是一个完整的、用于持久化的 memcached 变体。与 ...

    redis实战redis实战redis实战redis实战

    在这个章节中,会提及一些其他的Key-Value存储系统,例如Voldemort、Dynamo、memcachedb、Cassandra、memcached和Hypertable等,以供比较和对比。这些系统各有特点,比如Dynamo是高度可用的键值存储,支持分布式计算...

    Redis实战 中文 .pdf

    Redis实战中文版是一本全面介绍Redis数据库的书籍,它不仅适合初学者入门,也适合中级用户深入了解和分析使用。随着大数据时代的到来,分布式系统的广泛应用,传统的关系型数据库在处理大规模数据存储和高效读写方面...

    Redis中文参考.pdf

    首先介绍了Key-Value存储系统,包括Voldemort、Dynamo、memcachedb、Cassandra、memcached和Hypertable等。接着,文中解释了为什么选择Key-Value存储系统,特别是在大规模互联网应用、云存储等场合下的应用案例。 ...

    Redis操作基础文档

    1. **键值存储**:如Tokyo Cabinet/Tyrant、Berkeley DB、MemcacheDB、Redis等,特点是使用键值对形式存储数据,访问速度快,但缺乏复杂查询功能。 2. **文档数据库**:如MongoDB、CouchDB等,使用JSON或类似格式...

    Redis实战中文PDF

    - **memcachedb**: 结合了memcached的高性能和传统键值存储系统的持久化功能,提供了一个兼具速度与可靠性的解决方案。 - **Cassandra**: 一种分布式NoSQL数据库,支持横向扩展,主要用于处理大量结构化数据,具有高...

    Redis实战》电子书.pdf

    文中列举了几种不同的键值存储系统,例如Voldemort、Dynamo、memcachedb、Cassandra、memcached和Hypertable。每种系统都有其特定的使用场景和特点。 #### 1.2 为什么选择Key-Value Store 在讨论选择键值存储的理由...

    redis实战中文 pdf

    ### Redis实战中文版知识点概述 #### 一、Key-Value存储系统简介 ##### 1.1.1 Voldemort - **特点**: Voldemort 是一个分布式Key-Value存储系统,它被设计用于处理大规模的数据,并且能够提供高可用性和容错性。 -...

    Redis实战.pdf

    ### Redis实战知识点总结 #### 一、Key-Value存储系统简介 **1.1.1 Voldemort** - **定义**:Voldemort是一款分布式键值存储系统,最初由LinkedIn开发,后来开源。 - **特点**: - 支持分区和复制功能,能够实现...

    memcachedb 手册

    **memcachedb 手册详解** `memcachedb` 是一个基于 `memcached` 的、持久化的键值存储系统,它结合了 `memcached` 的高性能缓存特性与数据库的持久化能力,常用于分布式环境中的数据缓存。这份手册详细介绍了 `...

    redis实战 完整版

    ##### 1.1.3 memcachedb - **特点**: 结合了memcached的高性能和数据库的持久化特性。 - **应用场景**: 可以作为高速缓存层,也可以用作持久化存储。 ##### 1.1.4 Cassandra - **特点**: 分布式NoSQL数据库系统,...

    redis实战中文版

    ##### 1.1.3 memcachedb - **特点**: 结合了memcached的高性能和传统数据库的持久性,提供了内存中的键值存储功能。 - **应用场景**: 适用于需要高速缓存且同时具备数据持久化需求的应用场景。 ##### 1.1.4 ...

    Redis实战 中文.pdf

    **1.1.3 memcachedb** - **特点**:结合了memcached的高性能与数据库的持久性特点。 - **应用场景**:适用于需要高速缓存以及简单持久化需求的场景。 **1.1.4 Cassandra** - **特点**:一个高度可扩展的分布式...

Global site tag (gtag.js) - Google Analytics