Redis常用操作命令整理

數據庫乾貨鋪 發佈 2024-05-09T12:08:10.451126+00:00

#頭條創作挑戰賽#Redis(Remote Dictionary Server)是一個開源的內存數據結構存儲系統,常被用作資料庫、緩存和消息隊列等。它支持多種數據結構,包括字符串、哈希表、列表、集合和有序集合。

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」。

3. 設置過期時間

要為一個鍵設置過期時間,請使用EXPIRE命令。例如,要將鍵「name」的過期時間設置為60秒,可以執行以下操作:

127.0.0.1:6379> EXPIRE name 60

查看過期指定key的過期時間,可以用TTL命令

127.0.0.1:6379> TTL  name 

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

4. 判斷鍵是否存在

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

127.0.0.1:6379> EXISTS name

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

也可以使用TYPE命令

127.0.0.1:6379> TYPE name

返回對應的類型(如,string)則說明key存在,返回「none」說明key不存在。

還可以用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命令。

操作哈希表(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"

2. 獲取Hash值

要獲取一個Hash值,請使用HGET命令。例如,要獲取「user」哈希中的「name」欄位的值,可以執行以下操作:

127.0.0.1:6379> HGET user name

這將返回「ctt」。

3. 獲取所有Hash值

要獲取所有的Hash值,請使用HGETALL命令。例如,要獲取「user」哈希中所有的鍵值對,可以執行以下操作:

127.0.0.1:6379> HGETALL user

這將返回一個包含所有鍵值對的列表。

4. 刪除Hash值

要刪除一個Hash值,請使用HDEL命令。例如,要刪除「user」哈希中的age欄位,可以執行以下操作:

127.0.0.1:6379> HDEL user age

5.檢查Hash值是否存在

要檢查一個Hash值是否存在,請使用HEXISTS命令。例如,要檢查「user」哈希中是否存在「name」欄位,可以執行以下操作:

127.0.0.1:6379> HEXISTS user name

如果存在,將返回1;否則返回0。

6.獲取Hash中所有的鍵

要獲取一個Hash中所有的鍵,請使用HKEYS命令。例如,要獲取「user」哈希中的所有鍵,可以執行以下操作:

127.0.0.1:6379> HKEYS user

這將返回一個包含所有鍵的列表。

7. 獲取Hash中所有的值

要獲取一個Hash中所有的值,請使用HVALS命令。例如,要獲取「user」哈希中的所有值,可以執行以下操作:

127.0.0.1:6379> HVALS user

這將返回一個包含所有值的列表。

操作列表(list類型)

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

  1. 在列表的頭部插入元素

要在列表的頭部插入元素,請使用LPUSH命令。例如,要在名為「mylist」的列表的頭部插入值為「ctt」的元素,可以執行以下操作:

127.0.0.1:6379> LPUSH mylist ctt

2. 在列表的尾部插入元素

要在列表的尾部插入元素,請使用RPUSH命令。例如,要在名為「mylist」的列表的尾部插入值為「ccc」的元素,可以執行以下操作:

127.0.0.1:6379> RPUSH mylist ccc

3. 獲取列表長度

要獲取列表的長度,請使用LLEN命令。例如,要獲取名為「mylist」的列表的長度,可以執行以下操作:

127.0.0.1:6379> LLEN mylist

這將返回列表的長度。

4. 獲取列表中的元素

要獲取列表中的元素,請使用LINDEX命令。例如,要獲取名為「mylist」的列表中的第一個元素,可以執行以下操作:

127.0.0.1:6379> LINDEX mylist 0

5. 獲取列表的範圍

要獲取列表的一部分,請使用LRANGE命令。例如,要獲取名為「mylist」的列表中從第二個到第四個元素之間的元素,可以執行以下操作:

127.0.0.1:6379> LRANGE mylist 1 3

這將返回一個包含第二個到第四個元素之間的所有元素的列表。

6. 刪除列表中的元素

要刪除列表中的元素,請使用LREM命令。例如,要刪除名為「mylist」的列表中的所有值為「ccc」的元素,可以執行以下操作:

127.0.0.1:6379> LREM mylist 0 ccc

7. 彈出列表中的元素

要從列表的頭部或尾部彈出元素,請使用LPOP或RPOP命令。例如,要從名為「mylist」的列表的頭部彈出一個元素,可以執行以下操作:

127.0.0.1:6379> LPOP mylist

這將彈出並返回列表的第一個元素。

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

  • 8. 獲取所有元素
  • 取出一個列表里的所有元素,可以執行以下操作:

    127.0.0.1:6379> LRANGE  mylist 0 -1


    無序集合(set類型)操作

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

    1. 向集合中添加元素

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

    127.0.0.1:6379> SADD myset ctt
    

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

    要獲取集合中的元素數量,請使用SCARD命令。例如,要獲取名為「myset」的集合中的元素數量,可以執行以下操作:

    127.0.0.1:6379> SCARD myset
    

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

    要獲取集合中的所有元素,請使用SMEMBERS命令。例如,要獲取名為「myset」的集合中的所有元素,可以執行以下操作:

    127.0.0.1:6379> SMEMBERS myset
    

    這將返回一個包含所有元素的列表。

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

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

    127.0.0.1:6379> SISMEMBER myset ctt
    

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

    5. 從集合中刪除元素

    要從集合中刪除元素,請使用SREM命令。例如,要刪除名為「myset」的集合中值為「ctt2」的元素,可以執行以下操作:

    127.0.0.1:6379> SREM myset ctt2
    

    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中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
    

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

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

    127.0.0.1:6379> ZCARD myzset
    

    3.獲取有序集合中指定範圍內的元素

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

    127.0.0.1:6379> ZRANGE myzset 0 2
    

    這將返回一個包含指定元素的列表。

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

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

    127.0.0.1:6379> ZRANGEBYSCORE myzset 0 20
    

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

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

    127.0.0.1:6379> ZRANK myzset ttc

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

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

    127.0.0.1:6379> ZSCORE myzset ctt

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

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

    127.0.0.1:6379> ZREM myzset a

    8. 查看有序集合中所有元素

    使用ZRANGE命令查看有序集合中的所有元素

    127.0.0.1:6379> ZRANGE myzset 0 -1

    常見的管理命令

    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伺服器的命令統計信息,可以執行以下命令:

    127.0.0.1:6379> INFO commandstats
    

    此命令將返回一個包含各種Redis伺服器命令的統計信息的文本字符串,例如命令名稱、執行次數、執行時間、平均執行時間等等。


    • 獲取Redis伺服器的主從複製信息

    要獲取Redis伺服器的主從複製信息,可以執行以下命令:

    127.0.0.1:6379> INFO replication
    

    此命令將返回一個包含有關Redis伺服器主從複製狀態的各種指標的文本字符串,例如主從節點數量、主節點狀態、從節點狀態、複製偏移量等等。

    • 獲取Redis key分布情況

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

    127.0.0.1:6379> INFO Keyspace

    此命令將返回一個每個庫的key的數量、含有過期時間的key的數據以及平均過期時間

    2.查看所有已連接的客戶端信息

    127.0.0.1:6379> client list

    此命令將返回當前正在連接的redi實例中的所有客戶端的信息

    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

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

    以上為Redis基本操作命令。

    關鍵字: