Advertisement
OscarBesga_Panel

python hscan empty results

Nov 19th, 2021
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.45 KB | None | 0 0
  1. import redis
  2. import re
  3.  
  4.  
  5. redis_host = "localhost"
  6. redis_port = 6379
  7. redis_password = ""
  8.  
  9.  
  10. hash_id = "my.data.hash"
  11. count = 50
  12.  
  13. r = redis.Redis(host=redis_host, port=redis_port, password=redis_password, decode_responses=False)
  14.  
  15. my_cursor = 0
  16. my_deleting_keys = []
  17. my_result = {'batch': 0, 'scans': 0, 'zeros': 0}
  18. # while True
  19. print(f"Map is ${r.hlen(hash_id)}")
  20. while True:
  21.     my_deleting_keys = []
  22.     my_cursor = 0 # HERE LIES THE PROBLEM
  23.     while True:
  24.         prev_cursor = my_cursor
  25.         result = r.hscan(name=hash_id, cursor=my_cursor, count=50)
  26.         my_cursor = result[0]
  27.         data_list = result[1]
  28.         print('prev_cursor ' + str(prev_cursor) + ' / cursor ' + str(my_cursor) + " / results " + str(len(result[1])))
  29.         for dlk in data_list.keys():
  30.             my_deleting_keys.append(dlk.decode('UTF-8'))
  31.         my_result['scans'] += 1
  32.         if len(data_list) == 0 and not(my_cursor == 0):
  33.             my_result['zeros'] += 1
  34.         if my_cursor == 0:
  35.             break
  36.         if my_result['scans'] % 20 == 0:
  37.             break
  38.     my_result['batch'] += 1
  39.     print(f"Deleting")
  40.     if len(my_deleting_keys) > 0:
  41.         r.hdel(hash_id, *my_deleting_keys)
  42.     # for mdk in my_deleting_keys:
  43.         # print(mdk)
  44.         # r.hdel(pool_id, mdk)
  45.     current_size = r.hlen(hash_id)
  46.     print(f"Map is ${current_size} with ${my_result}")
  47.     if current_size == 0:
  48.         break
  49.  
  50. r.delete(hash_id)
  51.  
  52. print(my_result)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement