Redis基礎命令
- 查看服務器運行狀態:ping
- 查看服務器他的統計資訊:info [section],section的值:server , clients ,memory等等
- 切換庫命令:select index(默認16個庫,從0開始)
Redis中key的操作命令
- 查看當前資料庫中key的數目:dbsize
- 查看當前資料庫中有哪些key:keys *
- 清空當前/所有庫:flushdb/flushall
- 獲取redis的所有配置項:config get *
- 查找符合條件的key:key */wo?d/wo[or]d
- 判斷key是否存在:exists key1 key2,存在回傳1,不存在回傳0,多個key回傳存在的數量
- 移動key到指定的資料庫,移動的key在原庫中洗掉,移動成功回傳1,失敗為0:move key dbIndex
- 查看key的剩余生存時間,以秒為單位,回傳-1為永不過期,-2為不存在:ttl key
- 設定key的生存時間,超過時間key自動洗掉,單位是秒,成功回傳1,失敗為0:expire key seconds
- 查看key所存盤值的資料型別:type key
- 給key改名字,當key和newkey相同,或者newkey不存在時回傳一個錯誤:rename key newkey
- 洗掉存在的key,不存在的將被忽略,回傳洗掉key的數量:del key1 key2
Redis中五種資料型別結構
字串型別:String
簡介
1.redis中最基本的資料結構,能存盤任何型別的資料,甚至是圖片,最大512M
2.字串型別的資料操作總的思想是通過key操作value,key是資料標識,value是我們感興趣的業務資料
常用操作命令
- 將字串值 value 設定到 key 中,如果key已存在,后放的值會把前放的值覆寫掉:set key value
- 獲取 key 中設定的字串值,key存在,回傳key對應的value;key不存在,回傳nil:get key
- 如果 key 存在,則將 value 追加到 key 原來舊值的末尾, 如果 key 不存在,則將key 設定值為 value,回傳值:追加字串之后的總長度(字符個數):append key value
- 回傳 key 所儲存的字串值的長度:strlen key
- 將 key 中儲存的數字值加1,如果 key 不存在,則 key 的值先被初始化為 0 再執行incr操作:incr key
- 將 key 中儲存的數字值減1,如果 key 不存在,則么 key 的值先被初始化為 0 再執行 decr 操作:decr key
- 將 key 所儲存的值加上增量值,如果 key 不存在,則 key 的值先被初始化為 0 再執行 INCRBY 命令:incrby key offset
- 將 key 所儲存的值減去減量值,如果 key 不存在,則 key 的值先被初始化為 0 再執行 DECRBY 命令:decrby key offset
- 獲取 key 中字串值從 startIndex 開始到 endIndex 結束的子字串,包括startIndex和endIndex, 負數表示從字串的末尾開始,-1 表示最后一個字符:getrange key startindex endindex
- 用value覆寫key的存盤的值從offset開始,回傳值為修改后的字串的長度:setrange key offsetIndex value
- 設定key的值,并將 key 的生存時間設為 seconds (以秒為單位) ,如果key已經存在,將覆寫舊值,回傳值:設定成功,回傳OK:setex key seconds value
- setnx 是 set if not exists 的簡寫,如果key不存在,則 set 值,存在則不設定值,成功回傳1:setnx key value
- 同時設定一個或多個 key-value 對:mset key1 value1 key2 value2
- 獲取所有(一個或多個)給定 key 的值回傳值:包含所有key的串列,如果key不存在,則回傳nil:mget key1 key2
- 同時設定一個或多個 key-value 對,如果有一個key是存在的,則設定不成功:msetex key1 value1 key2 value2
串列:List
簡介
- Redis串列是簡單的字串串列,按照插入順序排序,左邊(頭部)、右邊(尾部)或者中間都可以添加元素,底層是個鏈表結構,鏈表的操作無論是頭或者尾效率都極高,但是如果對中間元素進行操作,那效率會大大降低了,
- 串列型別的資料操作總的思想是通過key和下標操作value,key是資料標識,下標是資料在串列中的位置,value是我們感興趣的業務資料
常用操作命令
- 將一個或多個值 value 插入到串列 key 的最左邊(表頭),各個value值依次插入到表頭位置,回傳值:插入之后的串列的長度:lpush key value1 value2[value…]
- 將一個或多個值 value 插入到串列 key 的最右邊(表尾),各個 value 值按依次插入到表尾,回傳值:插入之后的串列的長度:rpush key value[value…]
- 獲取串列 key 中指定下標區間內的元素,下標從0開始,到串列長度-1;下標也可以是負數,表示串列從后往前取,-1表示倒數第一個元素,-2表示倒數第二個元素,以此類推;startIndex和endIndex超出范圍不會報錯,
回傳值:獲取到的元素串列:lrange key startIndex endIndex - 移除并回傳串列key頭部第一個元素,即串列左側的第一個元素,
回傳值:串列左側第一個元素的值;串列key不存在,回傳nil:lpop key - 移除并回傳串列key尾部第一個元素,即串列右側的第一個元素,
回傳值:串列右側第一個元素的值;串列key不存在,回傳nil:rpop key - 獲取串列 key 中下標為指定 index 的元素,串列元素不洗掉,只是查詢,0 表示串列的第一個元素,1 表示串列的第二個元素;index也可以負數的下標, -1 表示串列的最后一個元素, -2 表示串列的倒數第二個元素,以此類推:lindex key index
- 獲取串列 key 的長度,回傳值:數值,串列的長度;key不存在回傳0:llen key
- 根據引數 count 的值,移除串列中與引數 value 相等的元素,count >0 ,從串列的左側向右開始移除;count < 0 從串列的尾部開始移除;count = 0移除表中所有與 value 相等的值,回傳值為移除元素的個數:lrem key count value
- 截取key的指定下標區間的元素,并且賦值給key,下標從0開始,一直到串列長度-1;下標也可以是負數,表示串列從后往前取,-1表示倒數第一個元素,-2表示倒數第二個元素,以此類推;startIndex和endIndex超出范圍不會報錯
- 將串列 key 下標為 index 的元素的值設定為 value,功能:設定成功回傳ok ; key不存在或者index超出范圍回傳錯誤資訊:lset key index value
- 將值 value 插入到串列 key 當中位于值 pivot 之前或之后的位置,key不存在或者pivot不在串列中,不執行任何操作,回傳值:命令執行成功,回傳新串列的長度,沒有找到pivot回傳 -1, key不存在回傳0:linsert key before/after pivot value
集合型別:Set
簡介
- Redis的Set是string型別的無序不重復集合
- 集合型別的資料操作總的思想是通過key確定集合,key是集合標識,元素沒有下標,只有直接操作業務資料和資料的個數
常用操作命令
- 將一個或多個 member 元素加入到集合 key 當中,已經存在于集合的 member 元素將被忽略,不會再加入,回傳值:加入到集合的新元素的個數(不包括被忽略的元素):sadd key member[member…]
- 獲取集合 key 中的所有成員元素,不存在的key視為空集合,回傳值:回傳指定集合的所有元素集合,不存在的key,回傳空集合:smembers key
- 判斷 member 元素是否是集合 key 的元素:sismember key member
- 獲取集合里面的元素個數回傳值:數字,key的元素個數,其他情況回傳 0:scard key
- 移除集合中一個或多個元素,不存在的元素被忽略:srem key member [member…]
- 只提供key,隨機回傳集合中一個元素,元素不洗掉,依然在集合中;提供了count時,count 正數, 回傳包含count個數元素的集合,集合元素各不重復,count是負數,回傳一個count絕對值的長度的集合,集合中元素可能會重復多次:srandmember key[count]
- 隨機從集合中洗掉一個或count個元素,回傳值:被洗掉的元素,key不存在或空集合回傳nil:spop key[count]
- 將 member 元素從src集合移動到dest集合,member不存在,smove不執行操作,回傳0,如果dest存在member,則僅從src中洗掉member:smove src dest member
- 回傳指定集合的差集,以第一個集合為準進行比較,即第一個集合中有但在其它任何集合中都沒有的元素組成的集合,回傳值:回傳第一個集合中有而后邊集合中都沒有的元素組成的集合,如果第一個集合中的元素在后邊集合中都有則回傳空集合:sdiff key key [key…]
- 回傳指定集合的交集,即指定的所有集合中都有的元素組成的集合,
回傳值:交集元素組成的集合,如果沒有則回傳空集合:sinter key key [key…] - 回傳指定集合的并集,即指定的所有集合元素組成的大集合,如果元素有重復,則保留一個,回傳值:回傳所有集合元素組成的大集合,如果所有key都不存在,回傳空集合:sunion key key [key…]
哈希型別:Hash
簡介
- Redis的hash 是一個string型別的key和value的映射表,這里的value是一系列的鍵值對,hash特別適合用于存盤物件
- 哈希型別的資料操作總的思想是通過key和field操作value,key是資料標識,field是域,value是我們感
興趣的業務資料
常用命令
- 將鍵值對field-value設定到哈希串列key中,如果key不存在,則新建哈希串列,然后執行賦值,如果key下的field已經存在,則value值覆寫:hset key field value [field value …]
- 獲取哈希表 key 中給定域 field 的值:hget key field
- 同時將多個 field-value (域-值)設定到哈希表 key 中,此命令會覆寫已經存在的field,hash表key不存在,創建空的hash表,再執行hmset:hmset key field value [field value…]
- 獲取哈希表 key 中一個或多個給定域的值,回傳值:回傳和field順序對應的值,如果field不存在,回傳nil:hmget key field [field…]
- 獲取哈希表 key 中所有的域和值,回傳值:以串列形式回傳hash中域和域的值,key不存在,回傳空hash:hgetall key
- 洗掉哈希表 key 中的一個或多個指定域field,不存在field直接忽略:hdel key field [field…]
- 獲取哈希表 key 中域field的個數:hlen key
- 查看哈希表 key 中,給定域 field 是否存在:hexists key field
- 查看哈希表 key 中的所有field域串列:hkeys key
- 回傳哈希表 中所有域的值串列:hvals key
- 給哈希表key中的field域增加int,回傳值:回傳增加之后的field域的值:hincrby key field int
- 給哈希表key中的field域增加float:hincrbyfloat key field float
- 將哈希表 key 中的域 field 的值設定為 value ,當且僅當域 field 不存在的時候才設定,否則不設定:hsetnx key field value
有序集合:Zset
簡介
- Redis 有序集合zset和集合set一樣也是string型別元素的集合,且不允許重復的成員
- 不同的是zset的每個元素都會關聯一個分數(分數可以重復),redis通過分數來為集合中的成員進行從小到大的排序,
常用命令
-
將一個或多個 member 元素及其 score 值加入到有序集合 key 中,如果member存在集合中,則覆寫原來的值;score可以是整數或浮點數:zadd key score member [score member…]
-
查詢有序集合,指定區間的內的元素,集合成員按score值從小到大來排序;startIndex和endIndex都是從0開始表示第一個元素,1表示第二個元素,以此類推; startIndex和endIndex都可以取負數,表示從后往前取,-1表示倒數第一個元素;WITHSCORES選項讓score和value一同回傳:zrange key startIndex endIndex [WITHSCORES]
-
獲取有序集 key 中,所有 score 值介于 min 和 max 之間(包括min和max)的成員,有序成員是按遞增(從小到大)排序;
使用符號”(“ 表示包括min但不包括max;
withscores 顯示score和 value;
limit用來限制回傳結果的數量和區間,在結果集中從第offset個開始,取count個
語法:zrangebyscore key min max [WITHSCORES ] [LIMIT offset count] -
洗掉有序集合 key 中的一個或多個成員,不存在的成員被忽略:zrem key member [member…]
-
獲取有序集 key 的元素成員的個數:zcard key
-
回傳有序集 key 中, score 值在 min 和 max 之間(包括 score 值等于 min 或 max )的成員的數量:zcount key min max
-
獲取有序集 key 中成員 member 的排名,有序集成員按 score 值從小到大順序排列,從0開始排名,score最小的是0 :zrank key member
-
獲取有序集合key中元素member的分數:zscore key member
-
獲取有序集 key 中成員 member 的排名,有序集成員按 score 值從大到小順序排列,從0開始排名,score最大的是0 :zrevrank key member
-
查詢有序集合,指定區間的內的元素,集合成員按score值從大到小來排序;startIndex和endIndex都是從0開始表示第一個元素,1表示第二個元素,以此類推;startIndex和endIndex都可以取負數,表示從后往前取,-1表示倒數第一個元素;WITHSCORES選項讓score和value一同回傳:zrevrange
key startIndex endIndex [WITHSCORES] -
獲取有序集 key 中,所有 score 值介于 max 和 min 之間(包括max和min)的成員,有序成員是按遞減(從大到小)排序;
使用符號”(“ 表示不包括min和max;
withscores 顯示score和 value;
limit用來限制回傳結果的數量和區間,在結果集中從第offset個開始,取count個
語法:zrevrangebyscore key max min [WITHSCORES ] [LIMIT offset count]
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/276677.html
標籤:其他
上一篇:Lua開發--lua變數
