Redis Move 命令

Redis key(鍵)

Redis MOVE 命令用于將當(dāng)前數(shù)據(jù)庫(kù)的 key 移動(dòng)到給定的數(shù)據(jù)庫(kù) db 當(dāng)中。

語(yǔ)法

redis Move 命令基本語(yǔ)法如下:

redis 127.0.0.1:6379> MOVE KEY_NAME DESTINATION_DATABASE

可用版本

>= 1.0.0

返回值

移動(dòng)成功返回 1 ,失敗則返回 0 。

實(shí)例

# key 存在于當(dāng)前數(shù)據(jù)庫(kù)

redis> SELECT 0                             # redis默認(rèn)使用數(shù)據(jù)庫(kù) 0,為了清晰起見,這里再顯式指定一次。
OK

redis> SET song "secret base - Zone"
OK

redis> MOVE song 1                          # 將 song 移動(dòng)到數(shù)據(jù)庫(kù) 1
(integer) 1

redis> EXISTS song                          # song 已經(jīng)被移走
(integer) 0

redis> SELECT 1                             # 使用數(shù)據(jù)庫(kù) 1
OK

redis:1> EXISTS song                        # 證實(shí) song 被移到了數(shù)據(jù)庫(kù) 1 (注意命令提示符變成了"redis:1",表明正在使用數(shù)據(jù)庫(kù) 1)
(integer) 1


# 當(dāng) key 不存在的時(shí)候

redis:1> EXISTS fake_key
(integer) 0

redis:1> MOVE fake_key 0                    # 試圖從數(shù)據(jù)庫(kù) 1 移動(dòng)一個(gè)不存在的 key 到數(shù)據(jù)庫(kù) 0,失敗
(integer) 0

redis:1> select 0                           # 使用數(shù)據(jù)庫(kù)0
OK

redis> EXISTS fake_key                      # 證實(shí) fake_key 不存在
(integer) 0


# 當(dāng)源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)有相同的 key 時(shí)

redis> SELECT 0                             # 使用數(shù)據(jù)庫(kù)0
OK
redis> SET favorite_fruit "banana"
OK

redis> SELECT 1                             # 使用數(shù)據(jù)庫(kù)1
OK
redis:1> SET favorite_fruit "apple"
OK

redis:1> SELECT 0                           # 使用數(shù)據(jù)庫(kù)0,并試圖將 favorite_fruit 移動(dòng)到數(shù)據(jù)庫(kù) 1
OK

redis> MOVE favorite_fruit 1                # 因?yàn)閮蓚€(gè)數(shù)據(jù)庫(kù)有相同的 key,MOVE 失敗
(integer) 0

redis> GET favorite_fruit                   # 數(shù)據(jù)庫(kù) 0 的 favorite_fruit 沒變
"banana"

redis> SELECT 1
OK

redis:1> GET favorite_fruit                 # 數(shù)據(jù)庫(kù) 1 的 favorite_fruit 也是
"apple"

Redis key(鍵)