MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Seberapa cepat Redis daripada mongoDB?

Hasil kasar dari tolok ukur berikut:2x tulis, 3x baca .

Berikut adalah tolok ukur sederhana dalam python yang dapat Anda sesuaikan dengan tujuan Anda, saya melihat seberapa baik kinerja masing-masing hanya dengan mengatur/mengambil nilai:

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

Hasil untuk dengan mongodb 1.8.1 dan redis 2.2.5 dan pymongo/redis-py terbaru:

$ ./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

Ambil hasilnya dengan sebutir garam tentunya! Jika Anda memprogram dalam bahasa lain, menggunakan klien lain/implementasi berbeda, dll, hasil Anda akan sangat bervariasi. Belum lagi penggunaan Anda akan sangat berbeda! Taruhan terbaik Anda adalah membandingkannya sendiri, persis dengan cara Anda ingin menggunakannya. Sebagai konsekuensinya, Anda mungkin akan menemukan yang terbaik cara memanfaatkan masing-masing. Selalu tolok ukur untuk diri Anda sendiri!



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb:Kueri objek json yang bersarang dalam array

  2. Grup MongoDB dan jumlahkan dengan id sebagai kunci

  3. [Infografis] Membandingkan Cassandra vs. MongoDB

  4. 3 Cara Mengonversi Tanggal menjadi String di MongoDB

  5. Menyempurnakan Seni Mengotomatisasi &Mengelola Basis Data Open Source Paling Populer:2017 @ Somenines