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 ...