1. 程式人生 > 實用技巧 >Redis - 3 常用指令

Redis - 3 常用指令

Redis - 常用指令

在這部分中呢,我們家學習兩個知識,第一個是key的常用指令,第二個是資料庫的常用指令。和前面我們學資料型別做一下區分,前面你學的那些指令呢,都是針對某一個數據型別操作的,現在學的都是對所有的操作的,來看一下,我們在學習Key的操作的時候,我們先想一下的操作我們應該學哪些東西:

3.1 key 操作分析

3.1.1 key應該設計哪些操作?

key是一個字串,通過key獲取redis中儲存的資料

對於key自身狀態的相關操作,例如:刪除,判定存在,獲取型別等

對於key有效性控制相關操作,例如:有效期設定,判定是否有效,有效狀態的切換等

對於key快速查詢操作,例如:按指定策略查詢key

3.1.2 key 基本操作

刪除指定key

del key

獲取key是否存在

exists key

獲取key的型別

type key

3.1.3 拓展操作

排序

sort

改名

rename key newkey
renamenx key newkey

3.1.3 key 擴充套件操作(時效性控制)

為指定key設定有效期

expire key seconds
pexpire key milliseconds
expireat key timestamp
pexpireat key milliseconds-timestamp

獲取key的有效時間

ttl key
pttl key

切換key從時效性轉換為永久性

persist key

3.1.4 key 擴充套件操作(查詢模式)

查詢key

keys pattern

查詢模式規則

*匹配任意數量的任意符號 ? 配合一個任意符號 [] 匹配一個指定符號

keys *  keys    查詢所有
it*  keys       查詢所有以it開頭
*heima          查詢所有以heima結尾
keys ??heima    查詢所有前面兩個字元任意,後面以heima結尾 查詢所有以
keys user:?     user:開頭,最後一個字元任意
keys u[st]er:1  查詢所有以u開頭,以er:1結尾,中間包含一個字母,s或t

3.2 資料庫指令

3.2.1 key 的重複問題

在這個地方我們來講一下資料庫的常用指令,在講這個東西之前,我們先思考一個問題:

假如說你們十個人同時操作redis,會不會出現key名字命名衝突的問題。

一定會,為什麼?因為你的key是由程式而定義的。你想寫什麼寫什麼,那在使用的過程中大家都在不停的加,早晚有一天他會衝突的。

redis在使用過程中,伴隨著操作資料量的增加,會出現大量的資料以及對應的key。

那這個問題我們要不要解決?要!怎麼解決呢?我們最好把資料進行一個分類,除了命名規範我們做統一以外,如果還能把它分開,這樣是不是衝突的機率就會小一些了,這就是咱們下面要說的解決方案!

3.2.2 解決方案

redis為每個服務提供有16個數據庫,編號從0到15

每個資料庫之間的資料相互獨立

在對應的資料庫中劃出一塊區域,說他就是幾,你就用幾那塊,同時,其他的這些都可以進行定義,一共是16個,這裡邊需要注意一點,他們這16個共用redis的記憶體。沒有說誰大誰小,也就是說數字只是代表了一塊兒區域,區域具體多大未知。這是資料庫的一個分割槽的一個策略!

3.2.3 資料庫的基本操作

切換資料庫

select index

其他操作

ping

3.2.4 資料庫擴充套件操作

資料移動

move key db

資料總量

dbsize

資料清除

flushdb    # 清除當前庫
flushall  # 清除所有庫