Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /usr/bin/env python
- import redis
- import random
- import pylibmc
- import sys
- r = redis.Redis(host = 'localhost', port = 6389)
- mc = pylibmc.Client(['localhost:11222'])
- REDIS_SETGET = False
- REDIS_HSET = False
- MC = False
- NUM_ENTRIES = 1000000
- MAX_VAL = 12000000
- if len(sys.argv) != 2 or sys.argv[1] not in ('redis-normal', 'redis-hashes', 'memcached'):
- print 'Specify a test: redis-normal, redis-hashes, memcached'
- print 'NOTE: clear out memcached (restart) or Redis (FLUSHALL) before running'
- sys.exit(2)
- if sys.argv[1] == 'redis-normal':
- REDIS_SETGET = True
- elif sys.argv[1] == 'redis-hashes':
- REDIS_HSET = True
- elif sys.argv[1] == 'memcached':
- MC = True
- p = r.pipeline()
- for i in range(0, NUM_ENTRIES):
- value = random.randint(0, MAX_VAL)
- if MC:
- mc.set(str(i), value)
- elif REDIS_SETGET:
- r.set(str(i), value)
- elif REDIS_HSET:
- bucket = int(i / 500)
- p.hset(bucket, i, value)
- if i % (NUM_ENTRIES/10) == 0:
- if REDIS_SETGET or REDIS_HSET:
- p.execute()
- p = r.pipeline()
- print i
- # one final clear out
- if REDIS_SETGET or REDIS_HSET:
- p.execute()
- # get size
- if MC:
- size = int(mc.get_stats()[0][1]['bytes'])
- elif (REDIS_SETGET or REDIS_HSET):
- size = int(r.info()['used_memory'])
- print '%s bytes, %s MB' % (size, size / 1024 / 1024)
Add Comment
Please, Sign In to add comment