天天看點

快速上手redis6 (3-常用五大資料類型)

作者:不開心就撸代碼

1. 基本操作

(1) keys * 檢視目前庫所有key (比對:keys *1)

(2) exists key 判斷某個key是否存在

(3) type key 檢視你的key是什麼類型

(4) del key 删除指定的key資料

(5) unlink key 根據value選擇非阻塞删除,僅将keys從keyspace中繼資料中删除,真正的删除會在後續異步操作。

(6) expire key 10 10秒鐘:為給定的key設定過期時間

(7) ttl key 檢視還有多少秒過期,-1表示永不過期,-2表示已過期

(8) Select 指令切換資料庫

(9) dbsize 檢視目前資料庫的key的數量

(10) flushdb 清空目前庫

(11) flushall 通殺全部庫

2. 字元串(String)

(1) set <key><value> 添加鍵值對

(2) get <key> 查詢對應鍵值

(3) append <key><value> 将給定的<value> 追加到原值的末尾

(4) strlen <key> 獲得值的長度

(5) setnx <key><value> 隻有在 key 不存在時 設定 key 的值

(6) incr <key> 将 key 中儲存的數字值增1,隻能對數字值操作,如果為空,新增值為1

(7) decr <key> 将 key 中儲存的數字值減1,隻能對數字值操作,如果為空,新增值為-1

(8) incrby / decrby <key><步長> 将 key 中儲存的數字值增減。自定義步長。

(9) mset <key1><value1><key2><value2> ..... 同時設定一個或多個 key-value對

(10) mget <key1><key2><key3> ..... 同時擷取一個或多個 value

(11) msetnx <key1><value1><key2><value2> ..... 同時設定一個或多個 key-value 對,當且僅當所有給定 key 都不存在。

(12) getrange <key><起始位置><結束位置> 獲得值的範圍,類似java中的substring,前包,後包

(13) setrange <key><起始位置><value> 用 <value> 覆寫<key>所儲存的字元串值,從<起始位置>開始(索引從0開始)。

(14) setex <key><過期時間><value> 設定鍵值的同時,設定過期時間,機關秒。

(15) getset <key><value> 以新換舊,設定了新值同時獲得舊值。

3. 清單(List)

(1) lpush/rpush <key><value1><value2><value3> .... 從左邊/右邊插入一個或多個值。

(2) lpop/rpop <key> 從左邊/右邊吐出一個值。值在鍵在,值光鍵亡。

(3) rpoplpush <key1><key2> 從<key1>清單右邊吐出一個值,插到<key2>清單左邊。

(4) lrange <key><start><stop> 按照索引下标獲得元素(從左到右)

lrange mylist 0 -1 0左邊第一個,-1右邊第一個,(0-1表示擷取所有)

(5) lindex <key><index> 按照索引下标獲得元素(從左到右)

(6) llen <key> 獲得清單長度

(7) linsert <key> before <value><newvalue> 在<value>的後面插入<newvalue>插入值

(8) lrem <key><n><value> 從左邊删除n個value(從左到右)

(9) lset<key><index><value> 将清單key下标為index的值替換成value

4. 集合(Set)

(1) sadd <key><value1><value2> ..... 将一個或多個 member 元素加入到集合 key 中,已經存在的 member 元素将被忽略

(2) smembers <key> 取出該集合的所有值。

(3) sismember <key><value> 判斷集合<key>是否為含有該<value>值,有1,沒有0

(4) scard<key> 傳回該集合的元素個數。

(5) srem <key><value1><value2> .... 删除集合中的某個元素。

(6) spop <key> 随機從該集合中吐出一個值。

(7) srandmember <key><n> 随機從該集合中取出n個值。不會從集合中删除 。

(8) smove <source><destination>value 把集合中一個值從一個集合移動到另一個集合

(9) sinter <key1><key2> 傳回兩個集合的交集元素。

(10) sunion <key1><key2> 傳回兩個集合的并集元素。

(11) sdiff <key1><key2> 傳回兩個集合的差集元素(key1中的,不包含key2中的)

5. 哈希(Hash)

(1) hset <key><field><value> 給<key>集合中的 <field>鍵指派<value>

(2) hget <key1><field> 從<key1>集合<field>取出 value

(3) hmset <key1><field1><value1><field2><value2>... 批量設定hash的值

(4) hexists<key1><field> 檢視哈希表 key 中,給定域 field 是否存在。

(5) hkeys <key> 列出該hash集合的所有field

(6) hvals <key> 列出該hash集合的所有value

(7) hincrby <key><field><increment> 為哈希表 key 中的域 field 的值加上增量 1 -1

(8) hsetnx <key><field><value> 将哈希表 key 中的域 field 的值設定為 value ,當且僅當域 field 不存在

6. 有序集合Zset(sorted set)

(1) zadd <key><score1><value1><score2><value2>… 将一個或多個 member 元素及其 score 值加入到有序集 key 當中。

(2) zrange <key><start><stop> [WITHSCORES] 傳回有序集 key 中,下标在<start><stop>之間的元素,帶WITHSCORES,可以讓分數一起和值傳回到結果集。

(3) zrangebyscore key min max [withscores] [limit offset count]

傳回有序集 key 中,所有 score 值介于 min 和 max 之間(包括等于 min 或 max )的成員。有序內建員按 score 值遞增(從小到大)次序排列。

(4) zrevrangebyscore key max min [withscores] [limit offset count]

同上,改為從大到小排列。

(5) zincrby <key><increment><value> 為元素的score加上增量

(6) zrem <key><value> 删除該集合下,指定值的元素

(7) zcount <key><min><max> 統計該集合,分數區間内的元素個數

zrank <key><value> 傳回該值在集合中的排名,從0開始。

繼續閱讀