gpt4 book ai didi

mongodb - Redis 比 mongoDB 快多少?

转载 作者:IT老高 更新时间:2023-10-28 11:11:15 24 4
gpt4 key购买 nike

人们普遍认为 Redis 非常“快”,而 mongoDB 也非常快。但是,我很难找到比较两者结果的实际数字。给定类似的配置、特性和操作(可能显示因素如何随着不同的配置和操作而变化)等,Redis 是快 10 倍吗?快 2 倍?快 5 倍?

我只说性能。我知道 mongoDB 是一个不同的工具,并且具有更丰富的功能集。这不是“mongoDB 比 Redis 更好”的争论。我在问,Redis 的性能比 mongoDB 高多少?

在这一点上,即使是廉价的基准也比没有基准要好。

最佳答案

来自以下基准的粗略结果:2x 写入,3x 读取

这是一个简单的 Python 基准测试,您可以根据自己的目的进行调整,我正在研究每个简单设置/检索值的性能:

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

当然要对结果持保留态度!如果您使用另一种语言进行编程,使用其他客户端/不同的实现等,您的结果将大不相同。更不用说你的用法会完全不同!您最好的选择是自己对它们进行基准测试,以您打算使用它们的方式进行。作为推论,您可能会找出利用每种方法的最佳方法。永远以自己为基准!

关于mongodb - Redis 比 mongoDB 快多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5252577/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com