Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import redis
- import re
- redis_host = "localhost"
- redis_port = 6379
- redis_password = ""
- hash_id = "my.data.hash"
- count = 50
- r = redis.Redis(host=redis_host, port=redis_port, password=redis_password, decode_responses=False)
- my_cursor = 0
- my_deleting_keys = []
- my_result = {'batch': 0, 'scans': 0, 'zeros': 0}
- # while True
- print(f"Map is ${r.hlen(hash_id)}")
- while True:
- my_deleting_keys = []
- my_cursor = 0 # HERE LIES THE PROBLEM
- while True:
- prev_cursor = my_cursor
- result = r.hscan(name=hash_id, cursor=my_cursor, count=50)
- my_cursor = result[0]
- data_list = result[1]
- print('prev_cursor ' + str(prev_cursor) + ' / cursor ' + str(my_cursor) + " / results " + str(len(result[1])))
- for dlk in data_list.keys():
- my_deleting_keys.append(dlk.decode('UTF-8'))
- my_result['scans'] += 1
- if len(data_list) == 0 and not(my_cursor == 0):
- my_result['zeros'] += 1
- if my_cursor == 0:
- break
- if my_result['scans'] % 20 == 0:
- break
- my_result['batch'] += 1
- print(f"Deleting")
- if len(my_deleting_keys) > 0:
- r.hdel(hash_id, *my_deleting_keys)
- # for mdk in my_deleting_keys:
- # print(mdk)
- # r.hdel(pool_id, mdk)
- current_size = r.hlen(hash_id)
- print(f"Map is ${current_size} with ${my_result}")
- if current_size == 0:
- break
- r.delete(hash_id)
- print(my_result)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement