您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python操作redis两个数据库间的数据迁移案例

bubuko 2022/1/25 19:25:28 python 字数 4635 阅读 829 来源 http://www.bubuko.com/infolist-5-1.html

#!/usr/bin/env python #coding=utf8 #redis两个数据库间的数据迁移 import redis import json redis_conn_6300 = redis.Redis(host="127.0.0.1",port="6300",password="123 ...
#!/usr/bin/env python
#coding=utf8
#redis两个数据库间的数据迁移

import redis
import json

redis_conn_6300 = redis.Redis(host="127.0.0.1",port="6300",password="123456",db=0)

redis_conn_5550 = redis.Redis(host="127.0.0.1",port="5550",password="123456",db=0)

server_id = 41
index = 0
redis_center_pids=[]

while True:
    index,data = redis_conn_6300.scan(index,count=1000)
    for x in data:
        if (server_id<<20) < int(x) < (server_id+1<<20):    #偏移量20位,取值id的一种算法
            redis_center_pids.append(x)
            #print x
    if not index: break    #如果新游标返回 0 表示迭代已结束

for pid in redis_center_pids:
    value =  redis_conn_6300.hgetall(pid)    #获取对应key下的所有内容
    print value    #获得第一个数据库对应key的值,类型为 dict
    redis_conn_5550.hmset(pid,value)    #插入类型为 dict 的数据到另一个数据库  hmset(key,value)

‘‘‘
Redis Scan 命令用于迭代数据库中的数据库键。
SCAN 命令是一个基于游标的迭代器,每次被调用之后, 都会向用户返回一个新的游标, 用户在下次迭代时需要使用这个新游标作为 SCAN 命令的游标参数, 以此来延续之前的迭代过程。
SCAN 返回一个包含两个元素的数组, 第一个元素是用于进行下一次迭代的新游标, 而第二个元素则是一个数组, 这个数组中包含了所有被迭代的元素。如果新游标返回 0 表示迭代已结束。
‘‘‘

 

python操作redis两个数据库间的数据迁移案例

原文:https://www.cnblogs.com/chenjw-note/p/13751174.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶