日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

在之前的文章中我們已經介紹過了redis中有關鍵的命令,在一篇中我們將詳細了解一下這方面的內容。除此之外在這一篇中我們還將了解Redis中的數據庫相關的管理。下面我們將分3個部分來介紹Redis鍵管理方面的知識。它們分別是單個鍵、遍歷鍵、數據庫管理等。


單個鍵管理

1.鍵重命名

rename key newkey
Redis鍵管理

 

我們看rename命令確實是可以給鍵重命名,但如果執行rename命令時新的鍵已經存在的,那么rename命令會將新的鍵的鍵的值替換掉。也就是如下圖所示:

Redis鍵管理

 

當然既然使用rename命令是有風險的,所以Redis為了保證給鍵重命名的安全性于是提供了renamenx命令,顧名思義,renamenx命令就是保證當前新的鍵不存在時,給鍵重命名命令才可以成功。

Redis鍵管理

 

如上圖所示,當renamenx命令給鍵重命名時,如果重命名的鍵是存在的,則renamenx命令返回0,表示當前命令執行失敗,否則返回1,則表示成功。

下面我們了解一下在使用rename命令或者renamenx命令時的注意事項。

  • 由于在使用rename命令或者renamenx命令時會執行del命令刪除舊的鍵,所以如果舊的鍵中的值比較大時,可能會存在阻塞的情況。
  • 如果在使用rename命令或者renamenx命令時,如果新的鍵與舊的鍵是相同時,則上述命令時可以執行成功的,但在Redis3.2之前版本會報錯。

2.隨機返回一個鍵

randomkey
Redis鍵管理

 


3.鍵過期

expire key seconds
expireat key timestamp
Redis鍵管理

 

ttl命令和pttl命令都可以查詢鍵的剩余過期時間,但是pttl命令精度更高可以支持毫秒級。下面我們看一下ttl命令和pttl命令的返回值。

  • 大于等于0的整數:鍵剩余的過期時間(ttl秒,pttl毫秒)。
  • -1:鍵沒有設置過期時間
  • -2:鍵不存在

下面我們看一下expireat命令。

Redis鍵管理

 

expireat命令可以直接設置鍵的毫秒過期時間戳。除此之外Redis2.6版本之后還支持了毫秒級的過期時間。

pexpire key milliseconds
pexpireat key milliseconds-timestamp
Redis鍵管理

 


Redis鍵管理

 

下面我們介紹一下在使用上述命令時的注意事項。

  • 如使用上述命令時如果鍵不存在時,則直接返回0,表示該操作執行失敗。
  • 如果使用上述命令時過期時間設置為負數,則當前鍵直接過期,并且會直接刪除,相當于執行del命令。
  • persist命令可以將鍵的過期時間清除。
  • 對于字符串類型的鍵,在執行set命令時,會默認去掉過期時間,在這點要特別注意,很容易忽視。
  • Redis不支持二級數據結構內部元素的過期功能,例如不能設置列表或者集合類型中的某個元素設置過期時間。
  • setnx命令作為set + expire組合,不但是原子性的,同時還減少了一次網絡通訊時間。

4.遷移鍵

顧名思義遷移鍵就是將鍵從一個地方遷移到另一個地方。比如將鍵從生產環境遷移到測試環境等等。在Redis中提供了3種方式來支持鍵的遷移功能,它們分別是move、dump + restore、migrate3種。但它們的底層實現方式,及使用場景均不太一樣。下面我們詳細了解一下。

(1)、move

move key db

move命令是在Redis的內部進行數據遷移,在Redis中實際上有多個數據庫的,所以move命令就是將指定的鍵從源數據庫移動目標數據庫中。Redis中數據庫相關的知識,我們將在后續的文章中在做介紹。


(2)、dump + restore

dump key
restore key ttl serialized-value [REPLACE]

dump + restore也可以實現Redis中不同實例之間的數據遷移。但和move命令不同dump + restore要分2部實現,下面我們詳細了解一下。

  • 在源數據庫上使用dump命令將鍵值序列化,格式采用的是RDB格式。
  • 在目標數據庫中使用restore命令將上一步中的序列化的值進行復原,其中ttl參數表示過期時間,如果ttl等于0則表示沒有過期時間。
Redis鍵管理

 

下面我們看一下dump + restore方式的注意事項。

  • 整個遷移的過程中并非原子性的,而是通過客戶端分步完成的。
  • 遷移的過程中是在兩個客戶端進行的,所以dump的結果不是在源數據庫和目標數據庫之間進行的。

下面我們完整演示一下使用dump + restore命令怎么遷移鍵。

1)、在源Redis中執行dump。

Redis鍵管理

 

2)、在目標Redis中執行restore。

Redis鍵管理

 

我們上述操作中啟用了2個客戶端,一個端口為6379另一個端口為6380。如果在使用dump和restore命令時,如果都在同一個端口客戶端中進行時,Redis會返回錯誤。


(3)、migrate

migrate host port key| destination-db timeout [COPY] [REPLACE] [KEYS key]

在Redis中migrate命令也可以實現鍵的遷移功能,它和上述的其它遷移命令相比,不同的就是migrate命令就是將dump、restore、del命令組合在了一起,并且簡化了操作流程。而且migrate命令還支持原子性操作。下面我們看一下使用migrate命令與dump + restore命令之間的不同之處。

  • migrate命令整個過程都是原子性的,并且不需要開啟多個Redis客戶端。
  • migrate命令的數據傳輸直接在源Redis和目標Redis中完成。
  • 目標Redis完成restore后會發送OK給源Redis,源Redis接受后會根據migrate對應的選項來決定是否在源Redis上刪除對應的鍵。

下面我們詳細看一下migrate命令的相關參數。

- host:目標Redis的IP地址。
- port:目標Redis的端口。
- key|"":在Redis3.0.6版本之前,migrate只支持遷移一個鍵,所以此處就是要遷移的鍵,但Redis3.0.6版本之后是可以支持遷移多個鍵了,所以如果當前要遷移多個鍵時,此處為空字符串“”。
- destination-db:目標Redis的數據庫索引,因為上面提到過在Redis是有多個數據庫存在的,但相關的知識后續在做詳細介紹,這里我們只要先知道這個概念就可以了。
- timeout:鍵遷移的超市時間(單位毫秒)。
- [copy]:如果添加此選項,遷移后并不刪除源鍵。
- [replace]:如果添加此選項,migrate不管目標Redis是否存在該鍵都會進行數據遷移,并且覆蓋。
- [keys key [key ...]]:遷移多個鍵,遷移多少,就寫多少鍵。
Redis鍵管理

 


Redis鍵管理

 

下面我們演示一下通過migrate命令怎么遷移Redis中的鍵。

1)、源Redis有要遷移的鍵,而目標Redis中沒有:

下面我們執行以下命令:

migrate host port key| destination-db timeout [COPY] [REPLACE] [KEYS key]
Redis鍵管理

 


Redis鍵管理

 

在使用migrate命令遷移鍵時,有一點要特別注意,就是migrate命令在執行時,要在源Redis中執行,如果在目標Redis中執行時,是不會遷移成功的,也就是如上圖所示。


Redis鍵管理

 


Redis鍵管理

 

2)、源Redis和目標Redis都有要遷移的鍵。

在使用migrate命令遷移鍵時如果沒有添加replace參數時,則Redis會顯示錯誤,并且如果不添加copy命令時,當鍵成功遷移后,源Redis中的遷移鍵,將被刪除。


Redis鍵管理

 

3)、源Redis中沒有要遷移的鍵。


Redis鍵管理

 


Redis鍵管理

 

下面我們演示一下批量遷移多個鍵的操作:


下面我們來比對一下上述3種鍵遷移的不同。

Redis鍵管理

 

分享到:
標簽:Redis
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定