Skip to content

Commit

Permalink
feat(redis): create migration for redis keys
Browse files Browse the repository at this point in the history
  • Loading branch information
steveoh committed May 14, 2024
1 parent 888187f commit f53a445
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 2 deletions.
3 changes: 1 addition & 2 deletions src/data-migration/redis/.gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
pyenv/
dump.rdb
dump.txt
dump.*
62 changes: 62 additions & 0 deletions src/data-migration/redis/index.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
import redis

def parse_dump():
keys = {}
with open('dump.txt', 'r') as data:
for entry in data:
entry = entry.strip().rstrip(',')

if len(entry) == 0:
continue

key, value = entry.split(' ')

#: entries without a colon are total values
if ':' not in key:
method = 'total'
else:
key, method = key.split(':')

key = key.lower().strip()
method = method.lower().strip()

if method not in ['total', 'time', 'geocode', 'search', 'info']:
print('skipping ', method)

continue

if key not in keys:
keys[key] = {'total': 0, 'time': 0, 'geocode': 0, 'search': 0, 'info': 0}

if method == 'total':
keys[key]['total'] = keys[key]['total'] + int(value)
elif method == 'time':
keys[key]['time'] = max(keys[key]['time'], int(value))
elif method == 'geocode':
keys[key]['geocode'] = keys[key]['geocode'] + int(value)
elif method == 'search':
keys[key]['search'] = keys[key]['search'] + int(value)
elif method == 'info':
keys[key]['info'] = keys[key]['info'] + int(value)


return keys

keys = parse_dump()

r = redis.Redis()
pipe = r.pipeline()

for key, values in keys.items():
for method, value in values.items():
redis_key = f"{key}:{method}"

if method == 'total':
redis_key = key

if value > 0:
pipe.set(redis_key, str(value))
else:
pipe.delete(redis_key)

pipe.execute()
1 change: 1 addition & 0 deletions src/data-migration/redis/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
rdbtools
python-lzf
setuptools
redis

0 comments on commit f53a445

Please sign in to comment.