python遷移redis資料庫

2021-10-05 19:21:02 字數 2918 閱讀 1362

python遷移redis資料庫

python3遷移redis資料庫,注意資料寫入後的編碼問題。

#!/usr/bin/python3

# -*- coding: utf-8 -*-

import redis

redis_1 = redis.strictredis(host=

'192.168.2.3'

,port=

6379

,password=

"password"

,db=

2,socket_connect_timeout=

6000

,encoding=

'gbk'

)redis_2 = redis.strictredis(host=

'192.168.2.6'

,db=

2,port=

63790

,password=

"password"

)def

copydb()

:for key in redis_1.keys():

# 轉成字串形式

key =

str(key)[2

:-1]

key_type =

str(redis_1.

type

(key))[

2:-1

]#對字串型別的鍵值對執行操作------------------------------------------

if key_type ==

'string'

:print

(redis_1.get(key)

) redis_2.

set(key,

str(redis_1.get(key)

,encoding=

'utf-8')[

2:-1

])print

('寫入到資料庫b成功,{}'

.format

(redis_2.get(key)))

#對雜湊字典型別的鍵值對執行操作-----------------------------------------

if key ==

'ip_op_unit_wbj'

:for son_key in redis_1.hkeys(key)

: son_key =

str(son_key,encoding=

'utf-8'

) son_value =

str(redis_1.hget(key,son_key)

,encoding=

'utf-8'

)print

(son_value)

redis_2.hset(key,son_key,son_value)

print

('寫入到資料庫b成功,{}'

.format

(redis_2.hgetall(key)))

#對列表型別的鍵值對執行操作---------------------------------------------

elif key_type ==

'list'

:print

('redis_1:'

,redis_1.lrange(key,

0, redis_1.llen(key)))

for value in redis_1.lrange(key,

0, redis_1.llen(key)):

v1 =

str(value,encoding=

'utf-8')[

2:-1

] redis_2.rpush(key, v1)

print

('寫入到資料庫b成功,{}'

.format

(redis_2.llen(key)))

#對集合型別的鍵值對執行操作---------------------------------------------

elif key_type ==

'set'

:print

('redis_1:'

,key, redis_1.scard(key)

)for value in redis_1.smembers(key)

: value =

str(value,encoding=

'utf-8')[

2:-1

] redis_2.sadd(key,value)

print

('寫入到資料庫b成功,{}'

.format

(redis_2.scard(key)))

#對有序集合型別的鍵值對執行操作------------------------------------------

elif key_type ==

'zset'

:for value in redis_1.zrangebyscore(key,0,

1000000000):

value =

str(value)[2

:-1]

print

(key)

score = redis_1.zscore(key, value)

redis_2.zadd(key,

)print

('\n寫入到資料庫b成功,{}'

.format

(redis_2.zcard(key)))

if __name__ ==

'__main__'

: copydb(

)

Redis資料遷移 鍵遷移

有時候我們想將乙個redis的資料遷移到另乙個redis中,redis提供了三種方式來滿足資料遷移的需求,分別是move dump restore migrate redis支援多資料庫,多資料庫之間彼此在資料上是隔離的。move key db就是把指定的鍵從源資料庫遷移到目標資料庫中。由於多資料庫...

Redis資料遷移教程

將src redis上的三個key x,y,z 的全部內容,遷移到dst redis 10.20.30.40 1 登入src redis的cli 2 執行命令 migrate 10.20.30.40 6379 0 5000 copy keys x y z命令說明 10.20.30.40 目的redi...

redis資料庫遷移

某大佬說,我們要把一部機器的redis遷移到另外一部機器上面。現已存在兩部機器的redis環境及狀態是啟動,還有本地用rdm連線著兩部機器的connection。開啟rdm,右擊redis資料庫,選擇console開啟redis命令控制台,輸入命令 config get dir輸出 1 dir 2 ...