对于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


Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐