对于hash或者普通string set(其实都是hash),内存占用明显跟key的数量有莫大的关系,key对应的value长度对于内存占用影响不大
r = redis.Redis(host='127.0.0.1', port=6379, db=0)
for i in xrange(100000):
r.hmset('score:'+str(i), {'score': '10000', 'info': ''}) # 内存占用14.13M
for i in xrange(100000):
r.hset('rankscore', 'score'+str(i), '10001') # 内存占用13.10M
for i in xrange(1000000):
r.hmset('score:'+str(i), {'score': '10000', 'info': ''}) # 内存占用117.26M
for i in xrange(10000000):
r.hmset('score:'+str(i), {'score': '10000', 'info': ''}) # 1000万数据,内存占用1.17G
for i in xrange(100000):
r.hmset('score:'+str(i), {'score': '10000', 'info': '111111111111'}) # 内存占用15.66M
for i in xrange(100000):
r.set('score'+str(i), '10001') # 内存占用11.08M
for i in xrange(200000):
r.set('score'+str(i), '10001') # 内存占用19.71M