天天看點

第2講 Redis常用指令與進階應用

sorted set是set的一個更新版本,它給集合中每個元素都定義一個分數,集合中的元素按照其分數排序。

1) zadd 鍵 分數1 值1 [分數2 值2…]

該指令添加指定的成員到key對應的有序集合中,每個成員都有一個分數。你可以指定多個分數/成員組合。如果一個指定的成員已經在對應的有序集合中了,那

麼其分數就會被更新成最新的,并且該成員會重新調整到正确的位置,以確定集合有序。分數的值必須是一個表示數字的字元串,并且可以是double類型的浮

點數。

2) zrange 集合 起始下标 截止下标 [withscores]

傳回有序集合中,指定區間内的成員。其中成員按照score(分數)值從小到大排序。具有相同score值的成員按照字典順序來排列。

3) zrevrange 集合 起始下标 截止下标 [withscores]

傳回有序集合中,指定區間的成員。其成員按照score從大到小來排列。

4) zrangebyscore 集合 起始分數 截止分數 withscores(不包含截止分數)

傳回有序集合中score(分數)在指定區間的值

5) zrem 集合 值1 [值2…]

删除有序集合中指定的值

6) zincrby 集合 增量 值

給有序集合中指定值的成員的分數(score)值加上增量(increment)。如果集合中沒有這個值,則給添加一個分數是increment的值。

7) zrank 集合 值

傳回有序集合中指定值的下标。

8) zrevrank 集合 值

傳回有序集合中指定值的下标

9) zcount 集合 起始分數 截止分數

傳回有序集合中,score值在起始分數與截止分數之間的個數

10) zcard 集合

傳回有序集合元素的個數

11) zremrangebyrank 集合 起始下标 結束下标

删除有序集合中,下标在指定區間的元素

12) zremrangebyscore 集合 起始分數 截止分數

删除有序集合中,分數在指定區間的元素

13)zinterstore 新集合 取交集的集合個數 集合1 集合2

取集合1和集合2的交集,并把結果儲存到新集合中。在計算交集之前,需要指定計算交集的集合的個數。交集中,值的分數是多個集合中分數的和。

14) zunionstore 新集合 取并集的集合個數 集合1 集合2

取集合1和集合2的并集,并把結果儲存到新集合中。在計算并集之前,需要指定計算并集的集合的個數。并集中,值的分數是多個集合中分數的和。

1、 keys 鍵名

按照鍵名查找指定的鍵。支援通配符

2、 exists 鍵名

确認一個鍵是否存在

3、 del 鍵名

删除一個鍵

4、 expire 鍵 秒

設定一個鍵的過期時間,如果鍵已經過期,将會被自動删除

5、 ttl 鍵

以秒為機關,傳回鍵的剩餘生存時間。

當鍵不存在時,傳回值為-2

當鍵存在,但沒有設定剩餘生存時間時,傳回-1

6、 select 資料庫号

選擇一個資料庫。

預設連接配接的資料庫是0,可以支援共16個資料庫。

在配置檔案中,通過databases 16 關鍵字定義

7、 move 鍵 資料庫号

将目前資料庫的鍵移動到指定的資料空中

8、 randomkey

從目前資料庫傳回一個随機的鍵。如果目前庫沒有任何鍵,則傳回nil

9、 rename 舊名 新名

重命名鍵

10、 type 鍵

傳回鍵類型。

傳回值 none (key不存在) string (字元串) list (清單) set (集合) zset (有序集) hash (哈希表)

1、 ping

測試伺服器是否可以連接配接

2、 echo 字元串

在指令行輸出字元串

3、 quit

退出redis資料庫

4、 save

儲存所有的資料。很少在生産環境直接使用save 指令,因為它會阻塞所有的用戶端的請求,可以使用<code>bgsave</code>指令代替. 如果在<code>bgsave</code>指令的儲存資料的子程序發生錯誤的時,用<code>save</code>指令儲存最新的資料是最後的手段

5、 dbsize

傳回目前庫中鍵的數量

6、 info

擷取伺服器的詳細資訊

7、 config get 參數

擷取redis伺服器配置檔案中的參數。支援通配符

8、 flushdb

删除目前資料庫中所有的資料

9、 flushall

删除所有資料庫中所有的資料

1)修改redis伺服器的配置檔案

2)重新開機redis

3)連接配接redis

redis 提供了不同級别的持久化方式:

1)rdb持久化方式能夠在指定的時間間隔能對你的資料進行快照存儲。是預設的持久化方式。這種方式是将記憶體中資料以快照的方式寫入到二進制檔案中,預設的檔案名為dump.rdb。這種持久化方式被稱為快照 snapshotting(快照)。

實驗:驗證dump.rdb資料儲存檔案

結論:

2) 使用aof 會讓你的redis更加耐久: 你可以使用不同的持久化政策:無備份,每秒備份,每次寫的時候備份。使用預設的每秒備份政策,redis的性能依然很好(備份是由背景線程進行處理的,主線程會盡力處理用戶端請求),一旦出現故障,你最多丢失1秒的資料。

redis主從複制特點:

a. master可以擁有多個slave

b. 多個slave可以連接配接同一個master外,還可以連接配接到其它slave

c. 主從複制不會阻塞master,在同步資料時,master可以繼續處理client請求

d. 提高系統的伸縮性

redis主從複制過程:

a. slave與master建立連接配接,發送sync同步指令

b. master會啟動一個背景程序,将資料庫快照儲存到檔案中,同時master主程序會開始收集新的寫指令并緩存。

c. 背景完成儲存後,就将此檔案發送給slave

d. slave将此檔案儲存到硬碟上

1) 不同伺服器配置主從

2) 同一台伺服器實作主從配置

這裡我們以本機配置 1台master + 1台slave 為例子,其中: