MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

O ile szybszy jest Redis niż mongoDB?

Przybliżone wyniki z następującego testu porównawczego:2x zapis, 3x odczyt .

Oto prosty test porównawczy w Pythonie, który możesz dostosować do swoich celów. Patrzyłem, jak dobrze każdy z nich wykona proste ustawienie/pobieranie wartości:

#!/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)

Wyniki dla mongodb 1.8.1 i redis 2.2.5 oraz najnowszego 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

Oczywiście potraktuj wyniki z przymrużeniem oka! Jeśli programujesz w innym języku, używasz innych klientów/innych implementacji itp., Twoje wyniki będą się bardzo różnić. Nie wspominając o tym, że twoje użycie będzie zupełnie inne! Najlepiej jest samemu je porównać, dokładnie w taki sposób, w jaki zamierzasz z nich korzystać. W konsekwencji prawdopodobnie znajdziesz najlepsze sposób na wykorzystanie każdego. Zawsze porównuj dla siebie!



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. $projekt w $lookup mongodb

  2. Połącz wartości ciągu w tablicy w jednym polu w MongoDB

  3. Wybierz rekordy pasujące do wartości concat dwóch pól w mongodb

  4. Bitwa o bazy danych NoSQL — porównanie MongoDB i Oracle NoSQL

  5. Jak wdrożyć serwer Percona dla MongoDB w celu zapewnienia wysokiej dostępności