I had tested the following key-value store for set() and get()
- MemcacheDB, use memcached client protocol.
- Tokyo Tyrant (Tokyo Cabinet), use memcached client protocol
- Redis, use JRedis Java client
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.
a very detailed and meticulous lesson, it really has a lot of values, I will learn a lot thanks
Thanks for great article!
Nice
Draw poker may be the traditional way of poker and was played prolifically in high stakes cash games in the nineteenth century
and early twentieth century. In addition, the poker rooms will not offer complete
hand histories coming from all poker hands dealt on their site for analysis by outside
sources. Make them think your cards are superior and don’t forget to maintain your emotionless look.
That video about online games with Tony and Ezekiel was so funny, especially campfire moment.
Nice article
I will follow it to know more info and expand my data, and I think everyone should know it.
Having people act within these laws would constitute virtuous behavior.
The article have full information which helps more. thank you sharing post.
Accounting assignment help
Oh, great, your article provided me with useful information and a fresh perspective on the subject.
Awesome blog!! Thank you for providing such excellent information. If you are looking for help with choosing a research topic for your thesis/ dissertation then you can visit our site… Research Topic Help Service
Nice post.
veri shades
Nice post.
Primary Tuition centre Cranbourne
Professional wedding DJ Services in the Philadelphia area. We provide a personalized music curation experience that makes your wedding unique and unforgettable. Let us turn your dream into reality with our top notch entertainment services. Philadelphia Wedding DJ
感谢您分享这一点。但是,因为是英文写的,所以我只懂一点。我们在 Interior Design Edmonton 的问候
this is a great article Gutter Cleaning Belleville thank you
Awesome post thank you for sharing check article here bathroom contractor
Thank you so much for such an amazing article. I love it and I hope that there’s more to come.
– Kendrick | https://www.landscapingbrantford.ca/landscaping-and-garden-installations
I appreciate the information in this article. I might wait for the next release. By the way, please visit our website to know more about our lawn mowing services around Orlean, ON. Thanks!
I believe that great articles come from great ideas from brilliant minds.
– landscapingmilton.ca/lawn-care-and-garden-maintenance
Thank you so much for this kind of information. I hope that there’s more to come. I love it so much! By the way, please visit our website. Thanks!
This kind of information is really amazing. I love to share this with my colleagues and friends so that they can also benefit. Thanks for this blog. I hope that there’s more to come.
– Army K | bathroomrenovationslangley.ca/tub-and-shower-remodeling
Thank you so much for such an amazing article. I love it and I hope that there’s more to come.
Kyla- kitchen remodeling fort worth tx
I appreciate this kind of information. And I am happy to share this with my friends and colleagues. This will definitely give amazing information to all of us. Thanks for sharing by the way.
– Tray | https://www.bathroomrenovationscambridge.ca
Great work and good job! I love the structure of your blog. And I appreciate that you share this with us for free. I hope that you continue making blogs and post them on your website. Please send me an email for new blog posts. Thank you! By the way, please visit our website to know more about our affordable bathroom remodeling services. Here’s the link: https://www.bathroomrenovationsbrantford.ca/. Thanks!
I appreciate those people who are dedicated to doing such informative blogs like this. I can’t imagine the intelligent mind used to do such amazing things. I do hope you continue doing this because as a student, we really appreciate this kind of information and consider this as a reference for future applications. By the way, please visit our website to know more about our affordable local duct cleaning services. Thanks!
there’s a lot of useful data in this site, I’ll be sure to check all out. I think this info might even be useful to someone from the best AC repair service in gainesville.
I really appreciate this kind of information. I do hope that there’s more to come. By the way, please visit our website to know more about our affordable carpet installation services. Thanks!
This is fantastic information. Thanks for the work and sharing this information to us. Great job! Excavation Company Halifax NS
I really appreciate this kind of information. I do hope that there’s more to come. By the way, please visit our website to know more about our affordable flooring remodeling and installation services.
I really appreciate this kind of information. I do hope that there’s more to come. By the way, please visit our website to know more about how much a tiling project will cost. Here’s the link: https://www.tilinghalifax.ca Thanks!
should be much faster and maybe compete with redis.
https://harrogatetreesurgeons.co.uk/
Great content. Been looking for some redis stuff, Thanks.
Retaining Wall Concrete
Thanks you just cleared my mind. This is what I am thinking about, glad we’re on the same page! Regards Gate Contractor
Very much appreciated. Thank you for this excellent article. Keep posting!
Tree Services
The only reason that redhat got on the board of centos was to kill it.
https://www.sydneytreeremovalists.com.au/
The CentOS-based Scientific Linux has also been taken down before.
https://treeserviceshighwycombe.co.uk/
Greetings from Midland! Does the call response time already monitored in this test?
I moved from CentOS to Ubuntu about 2 years ago when I started working with Docker. https://stalbansfencingsolutions.co.uk/
This is great informative blog. My love for redis knowledge is now sated. Gravity Retaining Wall
That is great data. https://www.flex.storage/
As someone in cybersecurity having a home lab is something I need more than want. https://eastbournetreesurgeons.co.uk/
This is great informative blog.Resin driveways can be installed over an existing concrete or brick driveway, reducing the cost of installation. Additionally, weed-resistant driveways are an excellent choice for urban areas, as they allow the soil to breathe, keeping the temperature of the area low. Resin gravel is also an ideal choice for homes where heat is an issue, as it is made from marble and aggregate. Ultimately, a resin driveway will be a great addition to any home. Extra resources
Greetings from all of us here at Baltimore Drywall Contractors. The script is pretty interesting. I’ll try to apply this later.
Impressive article. Precise and very clear!
Regards from Retaining Wall Solutions
Great article here
Retaining Wall Solutions
This is my first time visit here. From the tons of comments on your articles,I guess I am not only one having all the enjoyment right here!
Based on the provided information, here is a summary of the key-value store test results:
Small data size test result (using 100-byte string values):
Memcached: Write – 55,989 requests per second, Read – 50,974 requests per second
Memcachedb: Write – 25,583 requests per second, Read – 35,260 requests per second
Tokyo Tyrant: Write – 42,988 requests per second, Read – 46,238 requests per second
Redis: Write – 85,765 requests per second, Read – 71,708 requests per second
Larger data size test result (using 20k-byte string values):
Memcachedb: Write – 357 requests per second, Read – 327 requests per second
Tokyo Tyrant: Write – 3,501 requests per second, Read – 257 requests per second
Redis: Write – 1,542 requests per second, Read – 957 requests per second
Some additional notes about the test:
The Redis server experienced memory usage issues, consuming all available RAM and swap space, which resulted in exceptions.
Tokyo Cabinet and Memcachedb showed stability during heavy loads and used minimal memory compared to physical memory in the get test.
MemcacheDB’s performance was poorer when writing larger data sizes (20k).
The response time was not monitored in this test.
Please note that these test results are specific to the hardware, software versions, and configurations mentioned in the provided information. Results may vary in different environments or with different setups. superiordraincleaning.com/
Each of these key-value stores has its own unique features, performance characteristics, and community support. The choice of which one to use depends on your specific requirements, such as data persistence, performance, scalability, and integration capabilities with your existing systems.
It’s recommended to thoroughly evaluate and benchmark each key-value store based on your needs to determine which one best aligns with your project’s requirements and constraints.
This works perfectly in Greensboro. You did an impressive job!