redis各型別實現 命令

2021-08-03 12:03:17 字數 1512 閱讀 9152

比較基礎的命令不做過多贅述(例如string的set、get等),主要講述一下各型別的大概實現方式和需要費力記憶的命令,幫助理解和更好地運用redis,解決工作中的問題。

1

2

3

4

5

struct sdshdr

在redis中,也使用string型別儲存數字,從而擁有incr、decr等方法,具體實現細節隱藏在底層,不細表了。

mset命令:一次set多個key的值,但若失敗乙個,則整個命令失效(類似於事務機制,要麼都成功,要麼都不成功),不會出現部分成功部分失敗的情況。

msetnx 命令:參考mset,但比mset多乙個限制條件:若其中乙個key已存在,則也視為事務失敗

度為o(n) ),只能範圍查詢,所以更加適用於做各類排行榜、佇列等。

lrange:獲取指定區間的元素(唯讀)

ltrim:擷取指定區間元素(只寫),若成功,返回ok(不返回擷取後的內容),會修改該列表

blpop/brpop,阻塞式地pop,但它有個特點是可以一次pop多個list

,並且pop的順序是從左到右(例如從list1-list2-list3的順序),若list1存在內容,就會永遠pop出list1的內容直到list1為空,再去pop出list2的內容,所以可用於實現優先順序佇列,同時它帶有timeout屬性(以秒為單位),故可結合起來實現帶超時的優先順序佇列

。若超時,返回的是nil(程式語言中為null或none,視語言而定)

spop:刪除並返回set中的乙個隨機元素

smove:將乙個集合中的某元素移動到另乙個集合中,整個操作是原子的

而在redis底層中,有序集合使用skiplist(跳躍表)和hashtable組合而成

,skiplist負責排序,hashtable負責儲存資料。

有序集合相比普通集合,可以覆蓋普通集合的功能,並可用於構建具有優先順序的佇列(普通集合無法實現)

zincrby :對指定元素的score做自增

zrank :返回指定key在集合中的排序下標,按照score公升序排列

zrevrank :同上,但排序方式是按照score降序

zrange :返回指定兩個下標之間的元素,按照score公升序排列

zrevrange :同上,但按照score降序

rangebyscore :返回在集合中分數score在指定區間大小內的元素

zcount :返回在集合中分數在指定區間大小內的元素個數

zremrangebyrank:刪除集合中排名在給定區間內的元素

zremrangebyscore:刪除集合中分數在給定區間內的元素

hmset:一次設定key對應的hash物件內多個屬性的值,如果key對應的hash物件不存在,則會建立此物件

hlen :返回key對應hash物件的屬性數量

hkeys :返回hash物件中所有的鍵列表

hvals :返回hash物件中所有的值列表

UIViewContentMode各型別效果

uiimageview 的contentmode這個屬性是用來設定的顯示方式,如居中 居右,是否縮放等,有以下幾個常量可供設定 uiviewcontentmodescaletofill uiviewcontentmodescaleaspectfit uiviewcontentmodescaleasp...

Redis命令 雜湊型別

hset key field val用來給字段賦值 hget key field獲取欄位的值 hmset key field val field val 一次性賦值多個字段 hmget key field field.獲取多個欄位的值 hgetall key獲取欄位和字段值組成的列表 hexists...

redis命令Set型別(七)

集合型別 集合型別 無序 不可重複 列表型別 有序 可重複 命令 1 增加 刪除元素 語法 sadd key member member 127.0 0.1 6379 sadd set a b c integer 3 127.0 0.1 6379 sadd set a integer 0語法 sre...