天天看點

Redis常用操作指令整理

作者:資料庫幹貨鋪

#頭條創作挑戰賽#

Redis(Remote Dictionary Server)是一個開源的記憶體資料結構存儲系統,常被用作資料庫、緩存和消息隊列等。它支援多種資料結構,包括字元串、哈希表、清單、集合和有序集合。以下是 Redis 的一些常見操作:

連接配接 Redis

可以使用 redis-cli 指令連接配接到 Redis 伺服器。例如:

redis-cli -h host -p port -a password           

其中 host 是 Redis 伺服器的主機名,port 是 Redis 伺服器的端口号,password 是連接配接密碼(如果有)。

操作String(字元串)類型

  1. 設定鍵值

要設定一個鍵值對,請使用SET指令。例如,要将鍵“name”設定為值“ctt”,可以執行以下操作:

127.0.0.1:6379> SET name  ctt           

2. 擷取鍵值

要擷取鍵值,請使用GET指令。例如,要擷取鍵“name”的值,可以執行以下操作:

127.0.0.1:6379> GET name           

這将傳回鍵“name”的值,“ctt”。

Redis常用操作指令整理

3. 設定過期時間

要為一個鍵設定過期時間,請使用EXPIRE指令。例如,要将鍵“name”的過期時間設定為60秒,可以執行以下操作:

127.0.0.1:6379> EXPIRE name 60           

檢視過期指定key的過期時間,可以用TTL指令

127.0.0.1:6379> TTL  name            

傳回的結果便是剩餘時間(到期key會自動删除[目前先這麼認為,不同版本的不同角色處理有差異]),如果傳回-1,則表示無過期時間

Redis常用操作指令整理

4. 判斷鍵是否存在

要檢查一個鍵是否存在,請使用EXISTS指令。例如,要檢查鍵“name”是否存在,可以執行以下操作:

127.0.0.1:6379> EXISTS name           

如果鍵存在,則傳回1;如果鍵不存在,則傳回0。

Redis常用操作指令整理

也可以使用TYPE指令

127.0.0.1:6379> TYPE name           

傳回對應的類型(如,string)則說明key存在,傳回“none”說明key不存在。

Redis常用操作指令整理

還可以用TTL指令判斷

127.0.0.1:6379> TTL name           

傳回對應的時間(>=0的數字),則說明key存在,對應的數字為剩餘過期時間;

傳回-1,則說明key存在,且key無過期時間;

傳回-2,則說明key不存在。

5. 删除鍵

要删除一個鍵,請使用DEL指令。例如,要删除鍵“name”,可以執行以下操作:

127.0.0.1:6379> DEL aaa
           

6.自增/自減操作

要對一個鍵進行自增操作,請使用INCR指令。例如,要将鍵“cnt”自增1,可以執行以下操作:

127.0.0.1:6379> INCR cnt           

類似地,要對一個鍵進行自減操作,請使用DECR指令。

Redis常用操作指令整理

操作哈希表(Hash類型)

Redis中的Hash類型是一個鍵值對的集合,其中每個鍵都映射到一個值。下面是Redis中Hash類型的常見操作:

  1. 設定Hash值

要設定一個Hash值,請使用HSET指令。例如,要将“user”哈希中的“name”字段設定為“ctt”,"age "字段設定為 “29” 可以執行以下操作:

rubyCopy code127.0.0.1:6379> HSET user name "John Doe"
           
Redis常用操作指令整理

2. 擷取Hash值

要擷取一個Hash值,請使用HGET指令。例如,要擷取“user”哈希中的“name”字段的值,可以執行以下操作:

127.0.0.1:6379> HGET user name           

這将傳回“ctt”。

Redis常用操作指令整理

3. 擷取所有Hash值

要擷取所有的Hash值,請使用HGETALL指令。例如,要擷取“user”哈希中所有的鍵值對,可以執行以下操作:

127.0.0.1:6379> HGETALL user
           

這将傳回一個包含所有鍵值對的清單。

Redis常用操作指令整理

4. 删除Hash值

要删除一個Hash值,請使用HDEL指令。例如,要删除“user”哈希中的age字段,可以執行以下操作:

127.0.0.1:6379> HDEL user age           
Redis常用操作指令整理

5.檢查Hash值是否存在

要檢查一個Hash值是否存在,請使用HEXISTS指令。例如,要檢查“user”哈希中是否存在“name”字段,可以執行以下操作:

127.0.0.1:6379> HEXISTS user name
           

如果存在,将傳回1;否則傳回0。

Redis常用操作指令整理

6.擷取Hash中所有的鍵

要擷取一個Hash中所有的鍵,請使用HKEYS指令。例如,要擷取“user”哈希中的所有鍵,可以執行以下操作:

127.0.0.1:6379> HKEYS user           

這将傳回一個包含所有鍵的清單。

Redis常用操作指令整理

7. 擷取Hash中所有的值

要擷取一個Hash中所有的值,請使用HVALS指令。例如,要擷取“user”哈希中的所有值,可以執行以下操作:

127.0.0.1:6379> HVALS user
           

這将傳回一個包含所有值的清單。

Redis常用操作指令整理

操作清單(list類型)

Redis中的List類型是一個連結清單結構,其中每個節點都包含一個字元串值。下面是Redis中List類型的常見操作:

  1. 在清單的頭部插入元素

要在清單的頭部插入元素,請使用LPUSH指令。例如,要在名為“mylist”的清單的頭部插入值為“ctt”的元素,可以執行以下操作:

127.0.0.1:6379> LPUSH mylist ctt
           
Redis常用操作指令整理

2. 在清單的尾部插入元素

要在清單的尾部插入元素,請使用RPUSH指令。例如,要在名為“mylist”的清單的尾部插入值為“ccc”的元素,可以執行以下操作:

127.0.0.1:6379> RPUSH mylist ccc           
Redis常用操作指令整理

3. 擷取清單長度

要擷取清單的長度,請使用LLEN指令。例如,要擷取名為“mylist”的清單的長度,可以執行以下操作:

127.0.0.1:6379> LLEN mylist
           

這将傳回清單的長度。

Redis常用操作指令整理

4. 擷取清單中的元素

要擷取清單中的元素,請使用LINDEX指令。例如,要擷取名為“mylist”的清單中的第一個元素,可以執行以下操作:

127.0.0.1:6379> LINDEX mylist 0           
Redis常用操作指令整理

5. 擷取清單的範圍

要擷取清單的一部分,請使用LRANGE指令。例如,要擷取名為“mylist”的清單中從第二個到第四個元素之間的元素,可以執行以下操作:

127.0.0.1:6379> LRANGE mylist 1 3
           

這将傳回一個包含第二個到第四個元素之間的所有元素的清單。

Redis常用操作指令整理

6. 删除清單中的元素

要删除清單中的元素,請使用LREM指令。例如,要删除名為“mylist”的清單中的所有值為“ccc”的元素,可以執行以下操作:

127.0.0.1:6379> LREM mylist 0 ccc
           
Redis常用操作指令整理

7. 彈出清單中的元素

要從清單的頭部或尾部彈出元素,請使用LPOP或RPOP指令。例如,要從名為“mylist”的清單的頭部彈出一個元素,可以執行以下操作:

127.0.0.1:6379> LPOP mylist           

這将彈出并傳回清單的第一個元素。

彈出最後一個元素,使用RPOP

Redis常用操作指令整理
  • 8. 擷取所有元素
  • 取出一個清單裡的所有元素,可以執行以下操作:

    127.0.0.1:6379> LRANGE  mylist 0 -1           
    Redis常用操作指令整理

    無序集合(set類型)操作

    Redis中的Set類型是一個無序的、不重複的字元串集合。下面是Redis中Set類型的常見操作:

    1. 向集合中添加元素

    要向集合中添加元素,請使用SADD指令。例如,要将值為“ctt”的元素添加到名為“myset”的集合中,可以執行以下操作:

    127.0.0.1:6379> SADD myset ctt
               
    Redis常用操作指令整理

    2. 擷取集合中的元素數量

    要擷取集合中的元素數量,請使用SCARD指令。例如,要擷取名為“myset”的集合中的元素數量,可以執行以下操作:

    127.0.0.1:6379> SCARD myset
               
    Redis常用操作指令整理

    3. 擷取集合中的所有元素

    要擷取集合中的所有元素,請使用SMEMBERS指令。例如,要擷取名為“myset”的集合中的所有元素,可以執行以下操作:

    127.0.0.1:6379> SMEMBERS myset
               

    這将傳回一個包含所有元素的清單。

    Redis常用操作指令整理

    4.判斷元素是否在集合中存在

    要判斷一個元素是否在集合中存在,請使用SISMEMBER指令。例如,要判斷值為“ctt”的元素是否存在于名為“myset”的集合中,可以執行以下操作:

    127.0.0.1:6379> SISMEMBER myset ctt
               

    如果元素存在于集合中,則傳回1;否則傳回0。

    Redis常用操作指令整理

    5. 從集合中删除元素

    要從集合中删除元素,請使用SREM指令。例如,要删除名為“myset”的集合中值為“ctt2”的元素,可以執行以下操作:

    127.0.0.1:6379> SREM myset ctt2
               
    Redis常用操作指令整理

    6.求多個集合的交集、并集或差集

    要求多個集合的交集,請使用SINTER指令;要求并集,請使用SUNION指令;要求差集,請使用SDIFF指令。例如,假設有三個集合“set1”、“set2”和“set3”,要求它們的交集,可以執行以下操作:

    127.0.0.1:6379> SINTER set1 set2 set3
    127.0.0.1:6379> SUNION set1 set2 set3
               

    這将傳回一個包含所有集合的交集&并集元素的清單。

    Redis常用操作指令整理

    這些是Redis中Set類型的一些常見操作。Set類型是一個非常有用的資料結構,可用于存儲和處理多個相關但不重複的元素。

    有序集合(ZSET類型)操作

    Redis中的有序集合(Sorted Set,簡稱ZSet)是一個非常有用的資料結構,它類似于Set類型,但是每個元素都會關聯一個分數(score),且元素按照分數從小到大進行排序。下面是Redis中ZSet類型的常見操作:

    1. 向有序集合中添加元素

    要向有序集合中添加元素,請使用ZADD指令。例如,要将值為“ctt”的元素添加到名為“myzset”的有序集合中,且它的分數為100,可以執行以下操作:

    127.0.0.1:6379> ZADD myzset 100 ctt
               
    Redis常用操作指令整理

    2. 擷取有序集合中的元素數量

    要擷取有序集合中的元素數量,請使用ZCARD指令。例如,要擷取名為“myzset”的有序集合中的元素數量,可以執行以下操作:

    127.0.0.1:6379> ZCARD myzset
               
    Redis常用操作指令整理

    3.擷取有序集合中指定範圍内的元素

    要擷取有序集合中指定範圍内的元素,請使用ZRANGE指令。例如,要擷取名為“myzset”的有序集合中排名在1到3之間的元素,可以執行以下操作:

    127.0.0.1:6379> ZRANGE myzset 0 2
               

    這将傳回一個包含指定元素的清單。

    Redis常用操作指令整理

    4. 擷取有序集合中指定分數範圍内的元素

    要擷取有序集合中指定分數範圍内的元素,請使用ZRANGEBYSCORE指令。例如,要擷取名為“myzset”的有序集合中分數在0到20之間的元素,可以執行以下操作:

    127.0.0.1:6379> ZRANGEBYSCORE myzset 0 20
               
    Redis常用操作指令整理

    5. 擷取有序集合中指定元素的排名

    要擷取有序集合中指定元素的排名,請使用ZRANK指令。例如,要擷取名為“myzset”的有序集合中元素“ttc”的排名,可以執行以下操作:

    127.0.0.1:6379> ZRANK myzset ttc           
    Redis常用操作指令整理

    6.擷取有序集合中指定元素的分數

    要擷取有序集合中指定元素的分數,請使用ZSCORE指令。例如,要擷取名為“myzset”的有序集合中元素“ctt”的分數,可以執行以下操作:

    127.0.0.1:6379> ZSCORE myzset ctt           
    Redis常用操作指令整理

    7. 從有序集合中删除元素

    要從有序集合中删除元素,請使用ZREM指令。例如,要删除名為“myzset”的有序集合中元素“a”,可以執行以下操作:

    127.0.0.1:6379> ZREM myzset a           
    Redis常用操作指令整理

    8. 檢視有序集合中所有元素

    使用ZRANGE指令檢視有序集合中的所有元素

    127.0.0.1:6379> ZRANGE myzset 0 -1           
    Redis常用操作指令整理

    常見的管理指令

    1. info指令

    Redis的INFO指令用于擷取有關Redis伺服器的各種統計資訊和診斷資訊。執行INFO指令将傳回一個包含大量鍵值對的文本字元串,其中每個鍵值對代表一個名額。

    以下是一些常見的INFO指令用法和示例:

    • 擷取Redis伺服器的統計資訊

    要擷取Redis伺服器的統計資訊,可以執行以下指令:

    127.0.0.1:6379> INFO [all]           

    此指令将傳回一個包含各種名額的文本字元串,例如記憶體使用情況、用戶端連接配接數、鍵數量、命中率等等。

    • 擷取指定資訊分類下的統計資訊

    可以通過傳遞參數來指定要檢索哪個資訊分類的統計資訊。例如,要擷取Redis伺服器的記憶體使用情況,可以執行以下指令:

    127.0.0.1:6379> INFO memory
               

    此指令将傳回一個包含有關Redis伺服器記憶體使用情況的各種名額的文本字元串。

    Redis常用操作指令整理
    • 擷取Redis伺服器的指令統計資訊

    要擷取Redis伺服器的指令統計資訊,可以執行以下指令:

    127.0.0.1:6379> INFO commandstats
               

    此指令将傳回一個包含各種Redis伺服器指令的統計資訊的文本字元串,例如指令名稱、執行次數、執行時間、平均執行時間等等。

    Redis常用操作指令整理
    • 擷取Redis伺服器的主從複制資訊

    要擷取Redis伺服器的主從複制資訊,可以執行以下指令:

    127.0.0.1:6379> INFO replication
               

    此指令将傳回一個包含有關Redis伺服器主從複制狀态的各種名額的文本字元串,例如主從節點數量、主節點狀态、從節點狀态、複制偏移量等等。

    Redis常用操作指令整理
    • 擷取Redis key分布情況

    要擷取Redis key的分布情況,可以執行以下指令:

    127.0.0.1:6379> INFO Keyspace           

    此指令将傳回一個每個庫的key的數量、含有過期時間的key的資料以及平均過期時間

    Redis常用操作指令整理

    2.檢視所有已連接配接的用戶端資訊

    127.0.0.1:6379> client list           

    此指令将傳回目前正在連接配接的redi執行個體中的所有用戶端的資訊

    Redis常用操作指令整理

    3.監控所有操作指令monitor

    例如,在一個用戶端執行如下操作

    127.0.0.1:6379[2]> select 4
    127.0.0.1:6379[4]> set a ctt
    127.0.0.1:6379[4]> EXPIRE a 600
    127.0.0.1:6379[4]> del bbb           
    Redis常用操作指令整理

    另一個用戶端執行monitor指令,則可以看到所有的操作指令

    Redis常用操作指令整理

    以上為Redis基本操作指令。

    繼續閱讀