Redis乾貨總結

2021-10-18 05:23:49 字數 4543 閱讀 4665

型別

簡介特性

場景string(字串)

二進位制安全

可以包含任何資料,比如jpg或者序列化物件

一般情況下,開發中使用頻率最高,常儲存普通的key,如限流、商品資訊等較固定的zhi

hash(字典)

鍵值對集合,即程式語言中的map型別

適合儲存物件,並且可以像資料庫中的update乙個屬性一樣只修改某一項屬性值

儲存、讀取、修改使用者屬性

list(列表)

鍊錶(雙向鍊錶)

增刪快,提供了操作某一元素的api

最新訊息排行;訊息佇列

set(集合)

hash表實現,元素不重複

新增、刪除、查詢的複雜度都是o(1),提供了求交集、並集、差集的操作

共同好友;利用唯一性,統計訪問**的所有ip

sorted set(有序集合)

將set中的元素增加乙個權重引數score,元素按score有序排列

資料插入集合時,已經進行了天然排序

排行榜;帶權重的訊息佇列

ps:字串值最大值為512m

增:set key value

查:get key

刪:del key

增:mset key value [key1 value1]

查:mget key [key1]

strlen key //獲取字串長度

setnx key value //不存在就設定,存在就不設定

incr key //自增 1

incrby key num //給key的值增加num(int 型別),num 正數則為加,num 為負數 則為減

incrbyfloat key num //給key的值增加num(float 型別)

decr key //自減 1

decrby key num //給key的值減num

setex key second value //設定key的值為value存活時間為second秒

psetex key millisecond value //設定key的值為value存活時間為millisecond毫秒

hash型別的value只能存字串,不允許再巢狀其他型別,如果資料為空則為nil

每個hash可以儲存2 32 − 1 2^-1232−1個鍵的值對

hash型別十分貼近物件的資料儲存,並且可以靈活新增、刪除物件屬性。但hash型別設計並不是存在量而設計的,切記不可濫用,更不可將hash作為物件列表使用

hgetall操作可以獲取全部屬性,如果內部field過多,遍歷整體資料時效率會降低,很有可能成為資料訪問的瓶頸

增:hset key field value

查:hget key field

刪:hdel key field

增:hmset key field value [field1 value2]

查:hmget key field [field1]

hgetall key //獲取key的全部的值

hlen key //獲取key的值的數量

hexists key field //是否存在field

hkeys key //所有key的字段(field)

hvals key //所有key的值

hincrby key field num //給key的field的值增加num (num 為int值)

hincrybyfloat key field num //給key的field的值增加num (num 為float)

hsetnx key field value //存在不設定,不存在設定

list中儲存的資料都是string,資料總量是有限的,最多2 32 − 1 2^-1232−1個元素

list具有索引的概念,但是運算元據時通常以佇列的形式進行入隊出隊操作(或以棧的形式進行入棧出棧操作)

當stop的值為-1時,獲取的是全部資料

list對資料進行分頁操作,通常第一頁的資料使的資訊來自list,其他頁面的資料通過資料形式進行載入

新增

lpush key value [value1] //從左新增

rpush key value [value1] //從右新增

獲取lrange key start stop

lindex key index

llen key

獲取並移除

lpop key //從左出

rpop key //從右出

案例結果

lpush list a b c

結果:c b a

******************************=

rpush list a b c

結果:a b c

******************************=

list=[a b c]

lpop list

結果:b c

******************************=

list=[a b c]

rpop list

結果:a b

******************************=

增:sadd key member [member1]

查:smembers key

刪:srem key member [member1]

獲取總量:scard key

判定是否存在:sismember key member

隨機獲取(原集合保留):srandmember key [count]

隨機獲取(原集合不保留):spop key

集合交集:sinter key key1 key2

集合並集:sunion key key1 key2

集合差集:sdiff key key1 key2

儲存集合交集:sinterstore destination key key1 key2

儲存集合並集:sunionstore destination key key1 key2

儲存集合差集:sdiffstore destination key key1 key2

集合元素移動:smove source destination member

增:zadd key score member [score1 member1]

刪:zrem key member [member1]

獲取全部(正序):zrange key start stop [withscores]

獲取全部(倒序):zrevrange key start stop [withscores]

按條件查(正序):zrangebyscore key min max [withscore limit]

按條件查(倒序):zrevrangebyscore key max min [withscore limit]

按條件刪除(索引):zremrangebyrank key start stop

按條件刪除(積分):zremrangebyscore key min max

獲取集合總量:zcard key | zcount key min max

儲存集合交集: zinterstore destination numkeys key key1

儲存集合並集:zunionstore destination numkeys key key1

獲取索引(正序):zrank key member

獲取索引(倒序):zrevrank key member

score值獲取:zscore key member

score值修改:zincrby key num member

string存在物件講究整體性,以讀為主

hash儲存物件講究分散性,以寫為主

刪除:del key

判斷是否存在:exists key

獲取key型別:type key

指定有效期:

expire key seconds

pexpire key milliseconds

expireat key timestamp

pexpireat key milliseconds-timestamp

獲取有效期:

ttl key

pttl key

設定永久:persist key

查詢key:key pattern //*,?,

重新命名:rename key newkey | renamenx key newkey

對key排序:sort

選擇資料庫:select index

資料移動:move key db

資料庫大小:dbsize

資料清除:

單庫刪除:flushdb

多庫刪除:flushall

PhoneGap開發總結 乾貨

1.因為是 web頁面,長按住某乙個文字區域會彈出複製選擇框 android 4.0 可以通過 遮蔽 body 2.通過html標籤移除快取的影響 3.通過 active偽類來實現 按鈕 按下的樣式切換 4.通過 給按鈕新增震動 提高使用者使用感受 vibrate bind tap function...

大學總結LINUX(乾貨)

常用的命令 類似unix的作業系統 源 完全公開 1.真正的 多使用者多工 2.良好的相容性 3.強大的可移植性 4.高度的穩定性 5.漂亮的使用者介面 1.免費的 開源 2.支援多執行緒 多使用者 3.安全性好 4.對記憶體和檔案管理優越 linux的核心版本號由3個數字組成,為x.y.z形式。其...

flex布局總結 乾貨

2009年,w3c提出了一種新的方案 flex布局,可以簡便 完整 響應式地實現各種頁面布局。目前,它已經得到了所有瀏覽器的支援,這意味著,現在就能很安全地使用這項功能。flex是flexible box的縮寫,意為 彈性布局 用來為盒狀模型提供最大的靈活性。任何乙個容器都可以指定為flex布局。b...