短:固定时间=得到时间(奇怪)
我做了一些测试,只是插入了30000条记录,而不是收到它们30000次(Redis)。
def redis_set(data):
for k, v in data.iteritems():
redis_conn.set(k, v)
def redis_get(data):
for k in data.iterkeys():
val = redis_conn.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()
print "Starting test .. %s" % (test.__name__)
test(data)
elapsed = time.time() - start
print "%s: %d ops in %.2f seconds : %.1f ops/sec" % (test.__name__, num, elapsed, num / elapsed)
tests = [redis_set, redis_get]
do_tests(30000, tests)结果
Redis
redis_set: 106.21秒内30000次操作: 282.4次/秒
redis_get: 30000次,94.94秒: 316.0次/秒
还好吗?
发布于 2017-04-06 15:35:00
没出什么问题。--
因为Redis是单线程的,所以读和写操作没有锁损失。GET和SET都是几个内存操作,而且都非常快。
根据您的基准测试,SET比GET慢一点。这也是合理的,因为SET操作需要为新添加的项分配内存,并且内存分配比其他内存操作花费更多。
另一方面,Mongodb的读操作比写操作快得多。因为它为读操作做了很多优化,比如缓存。Mongodb使用的意图锁更便于读取操作,即多个读取器可以同时从一个时隙读取数据,而作者则是排他性的。
https://stackoverflow.com/questions/43258885
复制相似问题