Redis——02 前面瞭解了 Redis 以及在 Linux 的安裝,下麵瞭解一些 Redis 常用的命令。 Redis 常用命令: Redis 是 Key-Value 形式,Key 為字元串類型,而 Value 的取值類型如下: String 字元串 Hash 哈希表 List 列表 Set 集 ...
Redis——02
前面瞭解了 Redis 以及在 Linux 的安裝,下麵瞭解一些 Redis 常用的命令。
Redis 常用命令:
Redis 是 Key-Value 形式,Key 為字元串類型,而 Value 的取值類型如下:
- String 字元串
- Hash 哈希表
- List 列表
- Set 集合
- Sorted Set 有序 Set(ZSet)
預先設置一些值:
set smg1 "smg1"
set smg2 "smg2"
1. Key 操作
1.1 exists
作用:判斷 Key 是否存在
語法:exists key_name [key]
return:存在則返回有查詢所到的個數,不存在則返回 0。
1.2expire
作用:用於設置 key 的過期時間。key 過期後將不再可用。
語法:expire key_name time_seconds
單位是秒
return:成功返回1,失敗返回0
ttl key_name
查看指定 key 的剩餘生存時間,單位是秒。
redis 2.8+:key 不存在返回 -2,key 存在但是沒有設置剩餘時間時,返回 -1。
1.3 del
作用:刪除指定的 key,可以是多個 key。
語法:del key_name [key]
return:返回刪除成功的個數
2. 字元串值
2.1 set
作用:設置指定的 key 的值
語法:set key value
value 中如果沒有空格可以不用雙引號,如果有空格則需要雙引號。
return:成功 OK。
如果對一個 key 進行多次的 set,則會進行覆蓋。
2.2 get
作用:根據指定的 key 查詢值。
語法:get key
return:查詢到的值,如果沒有則返回 (nil)
,表示沒有查到。
2.3 setnx
作用:新增一個 key,只有在 key 不存在的時候做新增,如果 key 存在,則新增失敗,不會對其進行覆蓋。
語法:setnx key value
return:成功返回 1,失敗返回 0。
2.4 setex
作用:新增一個 key,並且設置有效時長單位是秒,同時是可以覆蓋已存在的 key 所對應的 value,同時也會覆蓋有效時長。
語法:setex key seconds value
return:成功 OK。
2.5 mset
作用:批量設置 key,如果已存在則覆蓋。沒有則新增
語法:mset key1 value1 ...keyN valueN
return:OK
2.6 mget
作用:批量查看 key
語法:mget key1 ...keyN
return:按照請求的 key 順序返回
3. Hash
3.1 hset
作用:用於為哈希表中的欄位賦值。
語法:hset key field value
return:成功 OK,如果哈希表中域欄位(field)已經存在了 value 則會進行覆蓋,返回0。
3.2 hget
作用:用於返回哈希表中指定欄位的值。
語法:hget key field
return:返回給定欄位的值。如果給定的欄位或 key 不存在時,返回 nil 。
3.3 hmset
作用:用於同時將多個 field-value (欄位-值)對設置到哈希表中。此命令會覆蓋哈希表中已存在的欄位。如果哈希表不存在,會創建一個空哈希表,並執行 HMSET 操作。
語法:hmset key field1 value1 ...fieldN valueN
return:如果命令執行成功,返回 OK 。
3.4 hmget
作用:用於返回哈希表中,一個或多個給定欄位的值。
如果指定的欄位不存在於哈希表,那麼返回一個 nil 值。
語法:hmget key field1 ... fieldN
return:一個包含多個給定欄位關聯值的表,表值的排列順序和指定欄位的請求順序一樣。
3.5 hkeys
作用:用於返回哈希表中,表的所有欄位名
語法:hkeys key
return:返回該哈希表中所有的欄位名,當 key 不存在時,返回一個空列表。
3.6 hvals
作用:命令返回哈希表所有欄位的值
語法:hvals key
return:一個包含哈希表中所有值的表。 當 key 不存在時,返回一個空表。
3.7 hgetall
作用:用於返回哈希表中,所有的欄位和值。
語法:hgetall key
return:以列表形式返回哈希表的欄位及欄位值。 若 key 不存在,返回空列表。
3.8 hdel
作用:命令用於刪除哈希表 key 中的一個或多個指定欄位,不存在的欄位將被忽略
語法:hdel key field1 ...field2
return:被成功刪除欄位的數量,不包括被忽略的欄位。
如果所有的 field 都被刪除,則這個哈希表則也會被刪除。
也可以直接使用 del 命令刪除整個哈希表。
3.9 flushall(全局)
作用:命令用於清空整個 Redis 伺服器的數據(刪除所有資料庫的所有 key )。
語法:flushall
return:總是返回 OK。
4. 列表/鏈表 List
可重覆,按序排列
4.1 rpush
作用:命令用於將一個或多個值插入到列表的尾部(最右邊)。
如果列表不存在,一個空列表會被創建並執行 rpush 操作。 當列表存在但不是列表類型時,返回一個錯誤。
語法:rpush key value1 ...valueN
return:執行 RPUSH 操作後,列表的長度。
4.2 lpush
作用:命令將一個或多個值插入到列表頭部。 如果 key 不存在,一個空列表會被創建並執行 lpush 操作。 當 key 存在但不是列表類型時,返回一個錯誤。
語法:lpush key value1 ...valueN
return:執行 LPUSH 命令後,列表的長度。
4.3 llen
作用:用於返回列表的長度。 如果列表 key 不存在,則 key 被解釋為一個空列表,返回 0 。 如果 key 不是列表類型,返回一個錯誤。
語法:llen key
return:列表的長度。
4.4 lrange
作用:返回列表中指定區間內的元素,區間以偏移量 START 和 END 指定。 其中 0 表示列表的第一個元素, 1 表示列表的第二個元素,以此類推。 你也可以使用負數下標,以 -1 表示列表的最後一個元素, -2 表示列表的倒數第二個元素,以此類推。
語法:lrange key start end
return:一個列表,包含指定區間內的元素。
4.5 lrem
作用: 根據參數 COUNT 的值,移除列表中與參數 VALUE 相等的元素
count > 0:表示從表頭到表尾搜索並移除 count 個與 value 相等的元素。
count < 0:表示從表尾到表頭搜索並移除 count 個與 value 相等的元素。
count = 0:移除表中所有與 VALUE 相等的值。
語法:lrem key count value
return:被移除元素的數量。 列表不存在時返回 0。
4.6 lindex
作用:命令用於通過索引獲取列表中的元素。你也可以使用負數下標,以 -1 表示列表的最後一個元素, -2 表示列表的倒數第二個元素,以此類推
語法:lindex key index_num
return:列表中下標為指定索引值的元素。 如果指定索引值不在列表的區間範圍內,返回 nil 。
5. 集合 Set
跟 Java中的 set 一樣,元素不可以重覆
5.1 sadd
5.2 smembers
5.3 scard
5.4 srem
6. 有序集合 Sorted Set
有序集合中每個 value 都有一個分數(score),根據分數進行排序。
每個值都要設置分數