zoukankan      html  css  js  c++  java
  • python习题:redis做数据迁移,把db2的数据迁移到db14里

    #redis
    # 把db2 的数据迁移到 db14 里
    # 需求分析:
    '''1、建立两个redis连接
    2、获取所有的keys()
    3、获取keys的类型:string hash'''

    import redis
    src_redis = redis.Redis(host='211.149.218.16',
    password='123456',
    port=6379,
    db=2)
    target_redis = redis.Redis(host='211.149.218.16',
    password='123456',
    port=6379,
    db=14)
    for key in src_redis.keys(): # redis获取的数据都是bytes类型的,所以key的类型是 bytes 类型
    if src_redis.type(key) == b'string':# 也可以用decode() 把key转换成string,这样等号右边就不需要加b
    v = src_redis.get(key) #先获取原来的数据
    target_redis.set(key,v) #set到新的数据库里
    else:
    all_hash_data = src_redis.hgetall(key) # 获取hash类型里面所有的数据,获取出来的数据是字典格式的 但是有b,需要转换
    for k,v in all_hash_data.items():# 因为获取到字典格式的hash类型的原数据有b,所以需要用for循环来进行转换后重新赋值给新的数据库
    target_redis.hset(key,k,v) # key是外面的,k是里面的key,v是k对应的value
  • 相关阅读:
    linux
    算法
    算法
    数据结构 与 算法
    mysql
    mysql
    mysql
    mysql
    【解决】Could not get JDBC Connection、java.lang.InterruptedException问题和排查过程
    git: unable to checkout working tree error: unable to create file Filename too long on windows
  • 原文地址:https://www.cnblogs.com/blackbird0423/p/8324586.html
Copyright © 2011-2022 走看看