redis 數據類型與命令
0: 切換數據庫
1:redis數據類型
1.1 Redis支持五種數據類型:
string(字符串),
hash(哈希),
list(列表),
set(集合)
及zset(sorted set:有序集合)
1.2 數據類型應用場景
1.3 redis命令:
Redis 命令用于在 redis 服務上執行操作。
要在 redis 服務上執行命令需要一個 redis 客戶端。Redis 客戶端在我們之前下載的的 redis 的安裝包中。
1.3.1 連接本地redis服務執行命令:
語法
Redis 客戶端的基本語法為:
redis-cli
實例
以下實例講解了如何啟動 redis 客戶端:
啟動 redis 服務器,打開終端并輸入命令 redis-cli,該命令會連接本地的 redis 服務。
redis-cli
redis 127.0.0.1:6379>
執行 PING 命令,該命令用于檢測 redis 服務是否啟動
redis 127.0.0.1:6379> PING
PONG
1.3.2:在遠程服務上執行命令
如果需要在遠程 redis 服務上執行命令,同樣我們使用的也是 redis-cli 命令。
語法
redis-cli -h host -p port -a password
實例
以下實例演示了如何連接到主機為 192.168.106.131,端口為 6379 ,密碼為 mypass 的 redis 服務上。
redis-cli -h 192.168.106 -p 6379 -a "mypass"
redis 192.168.106:6379>
redis 192.168.106:6379> PING
PONG
1.4: key value示意與解釋:
|
key |
value |
備注數據類型 |
|
fsfsafs |
‘tretertretetrt’ |
value是字符串 |
|
gdsgdfgfdg |
[dada, '313', 'dadsada'] |
value是list |
|
gdgds |
{"username":"xfsf", "tel":12345} |
value是哈希(hash) |
|
ggdgdfg |
("dadsafsf", 7 ,4, "fdfdsf", "dsds") |
value是集合(set) |
|
ggfdgfds |
(1, ,4, "afdfdsf", "ddsds",) |
value是有序集合(sorted set) |
1.5 :針對key(鍵)的常用命令
語法:命令 key名
常見KEY操作:
1.6 : key 對應value是字符串常用命令
語法:
示例:
|
序號 |
命令及描述 |
|
1 |
SET key value 設置指定 key 的值 |
|
2 |
GET key 獲取指定 key 的值。 |
|
3 |
GETRANGE key start end 返回 key 中字符串值的子字符 |
|
4 |
GETSET key value 將給定 key 的值設為 value ,并返回 key 的舊值(old value)。 |
|
5 |
GETBIT key offset 對 key 所儲存的字符串值,獲取指定偏移量上的位(bit)。 |
|
6 |
MGET key1 [key2..] 獲取所有(一個或多個)給定 key 的值。 |
|
7 |
SETBIT key offset value 對 key 所儲存的字符串值,設置或清除指定偏移量上的位(bit)。 |
|
8 |
SETEX key seconds value 將值 value 關聯到 key ,并將 key 的過期時間設為 seconds (以秒為單位)。 |
|
9 |
SETNX key value 只有在 key 不存在時設置 key 的值。 |
|
10 |
SETRANGE key offset value 用 value 參數覆寫給定 key 所儲存的字符串值,從偏移量 offset 開始。 |
|
11 |
STRLEN key 返回 key 所儲存的字符串值的長度。 |
|
12 |
MSET key value [key value ...] 同時設置一個或多個 key-value 對。 |
|
13 |
MSETNX key value [key value ...] 同時設置一個或多個 key-value 對,當且僅當所有給定 key 都不存在。 |
|
14 |
PSETEX key milliseconds value 這個命令和 SETEX 命令相似,但它以毫秒為單位設置 key 的生存時間,而不是像 SETEX 命令那樣,以秒為單位。 |
|
15 |
INCR key 將 key 中儲存的數字值增一。 |
|
16 |
INCRBY key increment 將 key 所儲存的值加上給定的增量值(increment) 。 |
|
17 |
INCRBYFLOAT key increment 將 key 所儲存的值加上給定的浮點增量值(increment) 。 |
|
18 |
DECR key 將 key 中儲存的數字值減一。 |
|
19 |
DECRBY key decrement key 所儲存的值減去給定的減量值(decrement) 。 |
|
20 |
APPEND key value 如果 key 已經存在并且是一個字符串, APPEND 命令將指定的 value 追加到該 key 原來值(value)的末尾。 |
1.6 : key 對應value是哈希(Hash)常用命令
Redis hash 是一個 string 類型的 field(字段) 和 value(值) 的映射表,hash 特別適合用于存儲對象。
Redis 中每個 hash 可以存儲 232 - 1 鍵值對(40多億)。
示例:
redis hash 基本的相關命令:
|
1 |
HDEL key field1 [field2] 刪除一個或多個哈希表字段 |
|
2 |
HEXISTS key field 查看哈希表 key 中,指定的字段是否存在。 |
|
3 |
HGET key field 獲取存儲在哈希表中指定字段的值。 |
|
4 |
HGETALL key 獲取在哈希表中指定 key 的所有字段和值 |
|
5 |
HINCRBY key field increment 為哈希表 key 中的指定字段的整數值加上增量 increment 。 |
|
6 |
HINCRBYFLOAT key field increment 為哈希表 key 中的指定字段的浮點數值加上增量 increment 。 |
|
7 |
HKEYS key 獲取所有哈希表中的字段 |
|
8 |
HLEN key 獲取哈希表中字段的數量 |
|
9 |
HMGET key field1 [field2] 獲取所有給定字段的值 |
|
10 |
HMSET key field1 value1 [field2 value2 ] 同時將多個 field-value (域-值)對設置到哈希表 key 中。 |
|
11 |
HSET key field value 將哈希表 key 中的字段 field 的值設為 value 。 |
|
12 |
HSETNX key field value 只有在字段 field 不存在時,設置哈希表字段的值。 |
|
13 |
HVALS key 獲取哈希表中所有值。 |
|
14 |
HSCAN key cursor [MATCH pattern] [COUNT count] 迭代哈希表中的鍵值對。 |
1.7: key 對應value是列表List)常用命令
Redis列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)
一個列表最多可以包含 232 - 1 個元素 (4294967295, 每個列表超過40億個元素)。
示例:
列表相關的基本命令
|
1 |
BLPOP key1 [key2 ] timeout 移出并獲取列表的第一個元素, 如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素為止。 |
|
2 |
BRPOP key1 [key2 ] timeout 移出并獲取列表的最后一個元素, 如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素為止。 |
|
3 |
BRPOPLPUSH source destination timeout 從列表中彈出一個值,將彈出的元素插入到另外一個列表中并返回它; 如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素為止。 |
|
4 |
LINDEX key index 通過索引獲取列表中的元素 |
|
5 |
LINSERT key BEFORE|AFTER pivot value 在列表的元素前或者后插入元素 |
|
6 |
LLEN key 獲取列表長度 |
|
7 |
LPOP key 移出并獲取列表的第一個元素 |
|
8 |
LPUSH key value1 [value2] 將一個或多個值插入到列表頭部 |
|
9 |
LPUSHX key value 將一個值插入到已存在的列表頭部 |
|
10 |
LRANGE key start stop 獲取列表指定范圍內的元素 |
|
11 |
LREM key count value 移除列表元素 |
|
12 |
LSET key index value 通過索引設置列表元素的值 |
|
13 |
LTRIM key start stop 對一個列表進行修剪(trim),就是說,讓列表只保留指定區間內的元素,不在指定區間之內的元素都將被刪除。 |
|
14 |
RPOP key 移除列表的最后一個元素,返回值為移除的元素。 |
|
15 |
RPOPLPUSH source destination 移除列表的最后一個元素,并將該元素添加到另一個列表并返回 |
|
16 |
RPUSH key value1 [value2] 在列表中添加一個或多個值 |
|
17 |
RPUSHX key value 為已存在的列表添加值 |
1.8: key 對應value是集合(set)常用命令
Set 是 String 類型的無序集合。集合成員是唯一的,這就意味著集合中不能出現重復的數據。
Redis 中集合是通過哈希表實現的,所以添加,刪除,查找的復雜度都是 O(1)。
集合中最大的成員數為 232 - 1 (4294967295, 每個集合可存儲40多億個成員)。
示例:
Redis 集合基本命令:
|
序號 |
命令及描述 |
|
1 |
SADD key member1 [member2] 向集合添加一個或多個成員 |
|
2 |
SCARD key 獲取集合的成員數 |
|
3 |
SDIFF key1 [key2] 返回第一個集合與其他集合之間的差異。 |
|
4 |
SDIFFSTORE destination key1 [key2] 返回給定所有集合的差集并存儲在 destination 中 |
|
5 |
SINTER key1 [key2] 返回給定所有集合的交集 |
|
6 |
SINTERSTORE destination key1 [key2] 返回給定所有集合的交集并存儲在 destination 中 |
|
7 |
SISMEMBER key member 判斷 member 元素是否是集合 key 的成員 |
|
8 |
SMEMBERS key 返回集合中的所有成員 |
|
9 |
SMOVE source destination member 將 member 元素從 source 集合移動到 destination 集合 |
|
10 |
SPOP key 移除并返回集合中的一個隨機元素 |
|
11 |
SRANDMEMBER key [count] 返回集合中一個或多個隨機數 |
|
12 |
SREM key member1 [member2] 移除集合中一個或多個成員 |
|
13 |
SUNION key1 [key2] 返回所有給定集合的并集 |
|
14 |
SUNIONSTORE destination key1 [key2] 所有給定集合的并集存儲在 destination 集合中 |
|
15 |
SSCAN key cursor [MATCH pattern] [COUNT count] 迭代集合中的元素 |
1.9: key 對應value是有序集合(set)常用命令
Redis 有序集合和集合一樣也是string類型元素的集合,且不允許重復的成員。
不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。
有序集合的成員是唯一的,但分數(score)卻可以重復。
集合是通過哈希表實現的,所以添加,刪除,查找的復雜度都是O(1)。 集合中最大的成員數為 232 - 1 (4294967295, 每個集合可存儲40多億個成員)。
示例:
redis 有序集合的基本命令:
|
序號 |
命令及描述 |
|
1 |
ZADD key score1 member1 [score2 member2] 向有序集合添加一個或多個成員,或者更新已存在成員的分數 |
|
2 |
獲取有序集合的成員數 |
|
3 |
計算在有序集合中指定區間分數的成員數 |
|
4 |
有序集合中對指定成員的分數加上增量 increment |
|
5 |
ZINTERSTORE destination numkeys key [key ...] 計算給定的一個或多個有序集的交集并將結果集存儲在新的有序集合 destination 中 |
|
6 |
在有序集合中計算指定字典區間內成員數量 |
|
7 |
ZRANGE key start stop [WITHSCORES] 通過索引區間返回有序集合指定區間內的成員 |
|
8 |
ZRANGEBYLEX key min max [LIMIT offset count] 通過字典區間返回有序集合的成員 |
|
9 |
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT] 通過分數返回有序集合指定區間內的成員 |
|
10 |
返回有序集合中指定成員的索引 |
|
11 |
移除有序集合中的一個或多個成員 |
|
12 |
移除有序集合中給定的字典區間的所有成員 |
|
13 |
ZREMRANGEBYRANK key start stop 移除有序集合中給定的排名區間的所有成員 |
|
14 |
移除有序集合中給定的分數區間的所有成員 |
|
15 |
ZREVRANGE key start stop [WITHSCORES] 返回有序集中指定區間內的成員,通過索引,分數從高到低 |
|
16 |
ZREVRANGEBYSCORE key max min [WITHSCORES] 返回有序集中指定分數區間內的成員,分數從高到低排序 |
|
17 |
返回有序集合中指定成員的排名,有序集成員按分數值遞減(從大到小)排序 |
|
18 |
返回有序集中,成員的分數值 |
|
19 |
ZUNIONSTORE destination numkeys key [key ...] 計算給定的一個或多個有序集的并集,并存儲在新的 key 中 |
|
20 |
ZSCAN key cursor [MATCH pattern] [COUNT count] 迭代有序集合中的元素(包括元素成員和元素分值) |


浙公網安備 33010602011771號