MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मोंगोडीबी की तुलना में रेडिस कितना तेज है?

निम्न बेंचमार्क से मोटे परिणाम:2x लिखें, 3x पढ़ें

यहाँ अजगर में एक सरल बेंचमार्क है जिसे आप अपने उद्देश्यों के अनुकूल बना सकते हैं, मैं देख रहा था कि प्रत्येक बस मूल्यों को सेट/पुनर्प्राप्त करने में कितना अच्छा प्रदर्शन करेगा:

#!/usr/bin/env python2.7
import sys, time
from pymongo import Connection
import redis

# connect to redis & mongodb
redis = redis.Redis()
mongo = Connection().test
collection = mongo['test']
collection.ensure_index('key', unique=True)

def mongo_set(data):
    for k, v in data.iteritems():
        collection.insert({'key': k, 'value': v})

def mongo_get(data):
    for k in data.iterkeys():
        val = collection.find_one({'key': k}, fields=('value',)).get('value')

def redis_set(data):
    for k, v in data.iteritems():
        redis.set(k, v)

def redis_get(data):
    for k in data.iterkeys():
        val = redis.get(k)

def do_tests(num, tests):
    # setup dict with key/values to retrieve
    data = {'key' + str(i): 'val' + str(i)*100 for i in range(num)}
    # run tests
    for test in tests:
        start = time.time()
        test(data)
        elapsed = time.time() - start
        print "Completed %s: %d ops in %.2f seconds : %.1f ops/sec" % (test.__name__, num, elapsed, num / elapsed)

if __name__ == '__main__':
    num = 1000 if len(sys.argv) == 1 else int(sys.argv[1])
    tests = [mongo_set, mongo_get, redis_set, redis_get] # order of tests is significant here!
    do_tests(num, tests)

mongodb 1.8.1 और redis 2.2.5 और नवीनतम pymongo/redis-py के साथ परिणाम:

$ ./cache_benchmark.py 10000
Completed mongo_set: 10000 ops in 1.40 seconds : 7167.6 ops/sec
Completed mongo_get: 10000 ops in 2.38 seconds : 4206.2 ops/sec
Completed redis_set: 10000 ops in 0.78 seconds : 12752.6 ops/sec
Completed redis_get: 10000 ops in 0.89 seconds : 11277.0 ops/sec

निश्चित रूप से नमक के एक दाने के साथ परिणाम लें! यदि आप किसी अन्य भाषा में प्रोग्रामिंग कर रहे हैं, अन्य क्लाइंट/विभिन्न कार्यान्वयन आदि का उपयोग कर रहे हैं, तो आपके परिणाम बेतहाशा भिन्न होंगे। उल्लेख नहीं है कि आपका उपयोग पूरी तरह से अलग होगा! आपका सबसे अच्छा दांव उन्हें स्वयं बेंचमार्क करना है, ठीक उसी तरह जिस तरह से आप उनका उपयोग करने का इरादा कर रहे हैं। एक परिणाम के रूप में आप शायद सर्वश्रेष्ठ . का पता लगा लेंगे प्रत्येक का उपयोग करने का तरीका। हमेशा अपने लिए बेंचमार्क!



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB साझा क्लस्टर बनाने के लिए 3 सरल चरण

  2. क्या मोंगोडब मेमोरी उपयोग को सीमित करने का कोई विकल्प है?

  3. PyMongo का उपयोग करके स्व-हस्ताक्षरित एसएसएल कनेक्शन

  4. मोंगोडब कुल प्रकार और समूह के भीतर सीमा

  5. नेवला - ईमेल सिंटैक्स मान्य करें