添加redis同步脚本和本地数据
This commit is contained in:
parent
03358b5426
commit
2106c5c287
44
redis-sync.py
Normal file
44
redis-sync.py
Normal file
@ -0,0 +1,44 @@
|
||||
import redis
|
||||
|
||||
# 本地 Redis
|
||||
src = redis.Redis(host='localhost', port=6379, password='Zzh08165511', db=0, decode_responses=False)
|
||||
|
||||
# 远程 Redis
|
||||
dst = redis.Redis(host='175.24.177.96', port=6379, password='Zzh08165511', db=0, decode_responses=False)
|
||||
|
||||
src_count = src.dbsize()
|
||||
dst_count = dst.dbsize()
|
||||
print(f"本地: {src_count} keys")
|
||||
print(f"远程: {dst_count} keys")
|
||||
print(f"需同步: {src_count - dst_count} keys")
|
||||
print("")
|
||||
|
||||
# 获取所有本地 key
|
||||
keys = src.keys()
|
||||
total = len(keys)
|
||||
synced = 0
|
||||
updated = 0
|
||||
|
||||
for key in keys:
|
||||
try:
|
||||
data = src.dump(key)
|
||||
if data:
|
||||
ttl = src.ttl(key)
|
||||
if ttl < 0:
|
||||
ttl = 0
|
||||
# 检查远程是否已有此 key
|
||||
exists = dst.exists(key)
|
||||
dst.restore(key, ttl * 1000, data, replace=True)
|
||||
if exists:
|
||||
updated += 1
|
||||
else:
|
||||
synced += 1
|
||||
if (synced + updated) % 100 == 0:
|
||||
print(f"进度: {synced + updated}/{total}")
|
||||
except Exception as e:
|
||||
print(f"同步失败 {key}: {e}")
|
||||
|
||||
print(f"\n同步完成!")
|
||||
print(f"新增: {synced} keys")
|
||||
print(f"更新: {updated} keys")
|
||||
print(f"远程现有: {dst.dbsize()} keys")
|
||||
BIN
server/data.db
BIN
server/data.db
Binary file not shown.
Loading…
Reference in New Issue
Block a user