Redis基礎篇——基本用法

基本用法

Redis 鍵(key)

Redis 鍵命令用於管理 redis 的鍵。redis

Redis DEL 命令

Redis DEL 命令用於刪除已存在的鍵。不存在的 key 會被忽略。bash

redis 127.0.0.1:6379> DEL KEY_NAME
複製代碼

在以上實例中 DEL 是一個命令, KEY_NAME 是一個鍵。 若是鍵被刪除成功,命令執行後輸出 (integer) 1,不然將輸出 (integer) 0post

Redis EXISTS 命令

Redis EXISTS 命令用於檢查給定 key 是否存在。ui

redis 127.0.0.1:6379> EXISTS KEY_NAME
複製代碼

若 key 存在返回 1 ,不然返回 0 。spa

Redis Expire 命令

Redis Expire 命令用於設置 key 的過時時間,key 過時後將再也不可用。單位以秒計。code

redis 127.0.0.1:6379> Expire KEY_NAME TIME_IN_SECONDS
複製代碼

設置成功返回 1 。 當 key 不存在或者不能爲 key 設置過時時間時(好比在低於 2.1.3 版本的 Redis 中你嘗試更新 key 的過時時間)返回 0 。對象

Redis Type 命令

Redis Type 命令用於返回 key 所儲存的值的類型。排序

redis 127.0.0.1:6379> TYPE KEY_NAME 
複製代碼

返回 key 的數據類型,數據類型有:three

  1. none (key不存在)
  2. string (字符串)
  3. list (列表)
  4. set (集合)
  5. zset (有序集)
  6. hash (哈希表)

Redis 字符串(String)

Redis 字符串數據類型的相關命令用於管理 redis 字符串值字符串

Redis SET 命令

Redis SET 命令用於設置給定 key 的值。若是 key 已經存儲其餘值, SET 就覆寫舊值,且無視類型。

redis 127.0.0.1:6379> SET KEY_NAME VALUE
OK
複製代碼

在 Redis 2.6.12 之前版本, SET 命令老是返回 OK 。 從 Redis 2.6.12 版本開始, SET 在設置操做成功完成時,才返回 OK

Redis Get 命令

Redis Get 命令用於獲取指定 key 的值。

redis> GET db
(nil)
redis> SET db redis
OK
redis> GET db
"redis"
複製代碼

返回 key 的值,若是 key 不存在時,返回 nil。 若是 key 不是字符串類型,那麼返回一個錯誤。

Redis Incrby 命令

Redis Incrby 命令將 key 中儲存的數字加上指定的增量值。

若是 key 不存在,那麼 key 的值會先被初始化爲 0 ,而後再執行 INCRBY 命令。

若是值包含錯誤的類型,或字符串類型的值不能表示爲數字,那麼返回一個錯誤。

本操做的值限制在 64 位(bit)有符號數字表示以內。

redis> SET rank 50
OK

redis> INCRBY rank 20
(integer) 70

redis> GET rank
"70"

複製代碼

加上指定的增量值以後, key 的值。

Redis Decrby 命令

Redis Decrby 命令將 key 所儲存的值減去指定的減量值。

若是 key 不存在,那麼 key 的值會先被初始化爲 0 ,而後再執行 DECRBY 操做。

若是值包含錯誤的類型,或字符串類型的值不能表示爲數字,那麼返回一個錯誤。

本操做的值限制在 64 位(bit)有符號數字表示以內。

redis> SET count 100
OK

redis> DECRBY count 20
(integer) 80
複製代碼

減去指定減量值以後, key 的值。

Redis 哈希(Hash)

Redis hash 是一個 string 類型的 field 和 value 的映射表,hash 特別適合用於存儲對象。

Redis 中每一個 hash 能夠存儲 232 - 1 鍵值對(40多億)。

Redis Hset 命令

Redis Hset 命令用於爲哈希表中的字段賦值 。

若是哈希表不存在,一個新的哈希表被建立並進行 HSET 操做。

若是字段已經存在於哈希表中,舊值將被覆蓋。

redis 127.0.0.1:6379> HSET myhash field1 "foo"
OK
複製代碼

若是字段是哈希表中的一個新建字段,而且值設置成功,返回 1 。 若是哈希表中域字段已經存在且舊值已被新值覆蓋,返回 0 。

Redis Hget 命令

Redis Hget 命令用於返回哈希表中指定字段的值。

redis> HGET myhash field1
"foo"
複製代碼

返回給定字段的值。若是給定的字段或 key 不存在時,返回 nil 。

Redis Hgetall 命令

Redis Hgetall 命令用於返回哈希表中,全部的字段和值。

在返回值裏,緊跟每一個字段名(field name)以後是字段的值(value),因此返回值的長度是哈希表大小的兩倍。

redis> HSET myhash field1 "Hello"
(integer) 1
redis> HSET myhash field2 "World"
(integer) 1
redis> HGETALL myhash
1) "field1"
2) "Hello"
3) "field2"
4) "World"
redis> 
複製代碼

以列表形式返回哈希表的字段及字段值。 若 key 不存在,返回空列表。

Redis 列表(List)

Redis列表是簡單的字符串列表,按照插入順序排序。你能夠添加一個元素到列表的頭部(左邊)或者尾部(右邊)

一個列表最多能夠包含 232 - 1 個元素 (4294967295, 每一個列表超過40億個元素)。

Redis Rpush 命令

Redis Rpush 命令用於將一個或多個值插入到列表的尾部(最右邊)。

若是列表不存在,一個空列表會被建立並執行 RPUSH 操做。 當列表存在但不是列表類型時,返回一個錯誤。

注意:在 Redis 2.4 版本之前的 RPUSH 命令,都只接受單個 value 值。

redis 127.0.0.1:6379> RPUSH mylist "hello"
(integer) 1
redis 127.0.0.1:6379> RPUSH mylist "hello"
(integer) 2
redis 127.0.0.1:6379> RPUSH mylist "foo"
(integer) 3
redis 127.0.0.1:6379> RPUSH mylist "bar"
(integer) 4
複製代碼

執行 RPUSH 操做後,列表的長度。

Redis Ltrim 命令

Redis Ltrim 對一個列表進行修剪(trim),就是說,讓列表只保留指定區間內的元素,不在指定區間以內的元素都將被刪除。

下標 0 表示列表的第一個元素,以 1 表示列表的第二個元素,以此類推。 你也可使用負數下標,以 -1 表示列表的最後一個元素, -2 表示列表的倒數第二個元素,以此類推。

redis 127.0.0.1:6379> LRANGE mylist 0 -1
1) "hello"
2) "foo"
3) "bar"
複製代碼

命令執行成功時,返回 ok 。

Redis 集合(Set)

Redis 的 Set 是 String 類型的無序集合。集合成員是惟一的,這就意味着集合中不能出現重複的數據。

Redis 中集合是經過哈希表實現的,因此添加,刪除,查找的複雜度都是 O(1)。

集合中最大的成員數爲 232 - 1 (4294967295, 每一個集合可存儲40多億個成員)。

Redis Sadd 命令

Redis Sadd 命令將一個或多個成員元素加入到集合中,已經存在於集合的成員元素將被忽略。

假如集合 key 不存在,則建立一個只包含添加的元素做成員的集合。

當集合 key 不是集合類型時,返回一個錯誤。

注意:在 Redis2.4 版本之前, SADD 只接受單個成員值。

redis 127.0.0.1:6379> SADD myset "hello"
(integer) 1
redis 127.0.0.1:6379> SADD myset "foo"
(integer) 1
redis 127.0.0.1:6379> SADD myset "hello"
(integer) 0
複製代碼

被添加到集合中的新元素的數量,不包括被忽略的元素。

Redis Smembers 命令

Redis Smembers 命令返回集合中的全部的成員。 不存在的集合 key 被視爲空集合。

redis 127.0.0.1:6379> SMEMBERS myset1
1) "World"
2) "Hello"
複製代碼

集合中的全部成員。

Redis 有序集合(sorted set)

Redis 有序集合和集合同樣也是string類型元素的集合,且不容許重複的成員。

不一樣的是每一個元素都會關聯一個double類型的分數。redis正是經過分數來爲集合中的成員進行從小到大的排序。

有序集合的成員是惟一的,但分數(score)卻能夠重複。

集合是經過哈希表實現的,因此添加,刪除,查找的複雜度都是O(1)。 集合中最大的成員數爲 232 - 1 (4294967295, 每一個集合可存儲40多億個成員)。

Redis Zadd 命令

Redis Zadd 命令用於將一個或多個成員元素及其分數值加入到有序集當中。

若是某個成員已是有序集的成員,那麼更新這個成員的分數值,並經過從新插入這個成員元素,來保證該成員在正確的位置上。

分數值能夠是整數值或雙精度浮點數。

若是有序集合 key 不存在,則建立一個空的有序集並執行 ZADD 操做。

當 key 存在但不是有序集類型時,返回一個錯誤。

注意: 在 Redis 2.4 版本之前, ZADD 每次只能添加一個元素。

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 1 "uno"
(integer) 1
redis> ZADD myzset 2 "two" 3 "three"
(integer) 2
複製代碼

被成功添加的新成員的數量,不包括那些被更新的、已經存在的成員。

Redis Zcount 命令

Redis Zcount 命令用於計算有序集合中指定分數區間的成員數量。

redis 127.0.0.1:6379> ZCOUNT myzset 1 3
(integer) 4
複製代碼

分數值在 min 和 max 之間的成員的數量。

Redis Zrange 命令

Redis Zrange 返回有序集中,指定區間內的成員。

其中成員的位置按分數值遞增(從小到大)來排序。

具備相同分數值的成員按字典序(lexicographical order )來排列。

若是你須要成員按

值遞減(從大到小)來排列,請使用 ZREVRANGE 命令。

下標參數 start 和 stop 都以 0 爲底,也就是說,以 0 表示有序集第一個成員,以 1 表示有序集第二個成員,以此類推。

你也可使用負數下標,以 -1 表示最後一個成員, -2 表示倒數第二個成員,以此類推。

redis 127.0.0.1:6379> ZRANGE salary 0 -1 WITHSCORES             # 顯示整個有序集成員
1) "jack"
2) "3500"
3) "tom"
4) "5000"
5) "boss"
6) "10086"
複製代碼

指定區間內,帶有分數值(可選)的有序集成員的列表。

Redis Zrevrange 命令

Redis Zrevrange 命令返回有序集中,指定區間內的成員。

其中成員的位置按分數值遞減(從大到小)來排列。

具備相同分數值的成員按字典序的逆序(reverse lexicographical order)排列。

除了成員按分數值遞減的次序排列這一點外, ZREVRANGE 命令的其餘方面和 ZRANGE 命令同樣。

redis 127.0.0.1:6379> ZRANGE salary 0 -1 WITHSCORES        # 遞增排列
1) "peter"
2) "3500"
3) "tom"
4) "4000"
5) "jack"
6) "5000"

redis 127.0.0.1:6379> ZREVRANGE salary 0 -1 WITHSCORES     # 遞減排列
1) "jack"
2) "5000"
3) "tom"
4) "4000"
5) "peter"
6) "3500"
複製代碼

指定區間內,帶有分數值(可選)的有序集成員的列表。

Redis Zscore 命令

Redis Zscore 命令返回有序集中,成員的分數值。 若是成員元素不是有序集 key 的成員,或 key 不存在,返回 nil 。

redis 127.0.0.1:6379> ZSCORE salary peter              # 注意返回值是字符串
"3500"
複製代碼

成員的分數值,以字符串形式表示。

redis篇集合

Redis基礎篇——Redis安裝

Redis基礎篇——介紹以及瞭解

Redis基礎篇——基本用法

Redis進階篇——PHP鏈接redis

相關文章
相關標籤/搜索