一直懒得写博文,不知道这次能坚持多久,闲话不提,进入正文。
测试需要测试综合能力,也就是create, get, update, delete 的能力,于是写了两个方法,分别用json和hash进行上述四种操作:
#!/usr/bin/python
#coding=utf-8
import redis
import ujson as json
db = redis.StrictRedis(host='localhost', port=6379, db=0)
mapper = {}
for letter in "abcdefghijklmnopqrstuvwxyz":
mapper[letter] = ', '.join([letter] * 50)
def test_json():
# create
db.set('mapper', json.dumps(mapper))
# get
json.loads(db.get('mapper'))
# update( updating by json, should get first.)
x = json.loads(db.get('mapper'))
x['a'] = 'a'
db.set('mapper', json.dumps(mapper))
# delete
db.delete('mapper')
def test_hash():
# create
db.hmset('mapper', mapper)
# get
db.hgetall('mapper')
# update
db.hset('mapper', 'a', 'a')
# delete
db.delete('mapper')
import timeit
db.flushdb()
print "json", timeit.timeit("test_json()", setup="from __main__ import test_json", number=100000)
db.flushdb()
print "hash", timeit.timeit("test_hash()", setup="from __main__ import test_hash", number=100000)
测试结果:
json 41.7783219814
hash 97.2103219032
[Finished in 139.1s]
是不是很惊呀?json的性能是hash的一倍!