Redis基礎知識筆記

Redis概念:redis是把整個數據庫全加載到內存中進行操做,經過異步操做按期把數據庫數據flush到硬盤上保存redis

Redis優勢數據庫

1)支持豐富的數據類型:string、hash、set、list、sorted set緩存

2)支持兩種數據持久化方式:快照、aof(追加)安全

3)支持主從複製dom

key相關命令異步

exist key:測試指定key是否存在,返回1表示存在,返回0表明不存在測試

del key1 key2...keyN:刪除給定的key,返回刪除key的數目,返回0表示給定的key不存在spa

type key:返回給定key的value類型。返回none表示不存在key視頻

keys pattern:返回匹配指定模式的全部key對象

expire key seconds:設置給定key的過時時間

randomkey:返回從當前數據庫中隨機選擇的一個key,若是當前數據是空的,返回空串

 rename oldkey newkey:重命名key,若是newkey存在將被覆蓋,返回1表示成功,返回0表示失敗

renamenx oldkey newkey:重命名key

ttl key:返回設置過時時間key的剩餘秒數,-1表示key不存在或者沒有設置過時時間

move key db-index:將key從當前數據庫移動到指定的數據庫。返回1表示成功,返回0表示key不存在或者已經在指定的數據庫中

String類型

概念:string類型是二進制安全的,能夠把圖片和視頻文件保存到string中。能夠用來緩存一些靜態文件

經常使用命令

set key value:設置key對應string類型的值,返回1表示成功,返回0表示失敗

setnx key value:若是key不存在,設置key對應的string類型的值,若是key存在,返回0

get key:獲取key對應的string值,若是key不存在返回nil

getset key value:先獲取key的值,再設置key的值,若是key不存在返回nil

mget key1 key2...keyN:一次獲取多個key的值,若是對應key不存在,則對應返回nil

mset key1 key2...keyN valueN:一次設置多個key值,成功返回1,表示全部值都設置,失敗返回0,表示沒有任何值被設置

msetnx key1 key2...keyN valueN:一次設置多個key的值,可是不會覆蓋已存在的key

incr key:向key對應值加1,並返回新的值

decr key:向key對應的值減1,decr一個不存在key,則設置key爲-1

incrby key integer:向key對應的值加上一個指定的整數integer,key不存在會設置key,並認爲原來的key值爲0

decrby key integer:向key對應的值減去一個指定整數integer。decrby徹底是爲了可讀性

List類型

概念:List數據類型是指key對應的value是一個雙向鏈表結構,全部List類型提供鏈表支持的全部操做。能夠用來實現消息隊列

經常使用命令:

lpush key string:向key對應的list頭部添加一個字符串元素,成功返回1,失敗返回0

rpush key string:向key對應得list尾部添加一個字符串元素,成功返回1,失敗返回0

llen key:返回key對應的list長度,若是key不存在返回0,若是key對應類型不是list,返回錯誤

lrange key start end:返回指定區間內的元素,下表從0開始,負值表示從鏈表尾部開始計算,-1表示倒數第一個元素,key不存在返回空列表

ltrim key strat end:截取list指定區域元素,成功返回1,key不存在返回錯誤

lset key index value:設置list指定下標的元素值,成功返回1,key或者下標不存在返回錯誤

lrem key count value:從list頭部或尾部刪除必定數量的匹配value的元素,返回刪除元素的數量。count爲0表示刪除所有

lpop key:從list頭部刪除並返回刪除元素。若是key對應list不存在或者是空返回 nil,若是key對應值不是list返回錯誤

rpop key:從list尾部刪除並返回刪除元素

blpop key1...keyN timeout:從左到右掃描key1...keyN,返回對第一個非空list進行lpop操做並返回。若是全部list爲空或者不存在,阻塞timeout秒,timeout爲0表示一直阻塞

brpop key1...keyN timeout:功能與blpop相似,blpop從頭部刪除,brpop從尾部刪除

Set類型

概念:是一種無序集合,在redis內部H經過HashTable內部實現,查找和刪除元素的時間複雜度爲O(1)。set類型的優勢是快速查找元素是否存在,用於記錄一些不能重複的數據。能夠用做投票系統

經常使用命令:

sadd key member:添加一個string元素到key對應的set集合中,成功返回1,若是元素在集合中,返回0

srem key member:從key對應set中移除給定的元素,成功返回1

spop key:刪除並返回key對應set中隨機一個元素

srandmember key:隨機取set中的一個元素,但不刪除元素

smove srckey dstkey member:從srckey對應set中移除member並添加到dstkey對應的set中,整個操做是原子的。成功返回1,若是member在srckey中不存在返回0,若是key對應的值不是set類型,返回錯誤

scard key:返回set的元素個數,若是set是空或者key不存在返回0

sismember key member:判斷member是否在set中,存在返回1,不存在或者key對應的set集合不存在返回0

sinter key1 key2...keyN:返回全部給定key的交集

sinterstore dstkey key1...keyN:返回全部給定key的交集,並保存在dstkey對應的set集合中

sunion key1 key2...keyN:返回全部給定key的並集

sunionstore dstkey key1...keyN:返回全部給定key的並集,同時把並集保存到dstkey對應的set集合中

sdiff key1 key2...keyN:返回全部給定集合的差集

sdiffstore dstkey key1...keyN:返回全部給定key的差集,同時把差集保存到dstkey對應的set集合中

smembers key:返回key對應的set全部集合,結果是無序的

Sorted Set類型

概念:是string類型元素的集合,屬於有序集合,經過一個double類型的整數進行排序。Sorted set經過SkipList(跳躍表:負責排序)和HashTable(負責保存數據)組合完成。可用做排行榜應用

經常使用命令:

zadd key score member:添加元素member到集合,元素在集合存在則更新對應score

zrem key member:刪除指定元素,1表示成功,若是元素不存在返回0

zincrby key incr member:增長對應member的score值,而且從新排序,返回更新後的score值

zrank key member:返回指定元素值集合中的排名,集合元素按score從小到大排序的

zrevrank key member:同zrank同樣,但集合中元素score按從大到小排序

zrange key start end:從集合中指定區間的元素,返回結果按score順序排序

zrevrange key start end:從集合中指定區間的元素,返回結果按score逆序排序

zrangebyscore key min max:返回集合在給定區間的元素

zcount key min max:返回集合中在給定區間的數量

zcard key:返回集合中元素個數

zscore key element:返回給定元素對應的score

zremrangebyrank key min max:刪除集合中排序在給定區間的元素

zremrangebyscore key min max:刪除集合中score在給定區間的元素

Hash類型

概念:Hash類型是每一個key對應一個HashTable,添加、刪除和修改操做的時間複雜度O(1)。Hash類型適合應用於存儲對象

經常使用命令:

hset key filed value:設置key對應的Hash對象中指定域的值

hget key filed:返回filed域關聯的值,若是該域不存在或者key對應的hash對象不存在,返回nil

hmget key filed1...filedN:返回存儲在key對應的hash對象中各個指定域相關聯的值

hmset key filed1 value1 filedN...valueN:設置存儲在key對應的hash對象中指定域的值

hincrby key filed integer:將存儲在key對應的hash對象中filed域相關聯的值加上integer指定的值

hexists key filed:查看指定filed域是否已經存在

hdel key filed:刪除指定的filed域,成功返回1

hlen key:返回key對應的hash對象中filed數,若是key不存在,返回0

hkeys key:返回key對應的hash對象中全部的filed名稱

hvals key:返回key對應的hash對象中的全部值

hgetall key:返回key對應hash對象中全部域相關聯的值

相關文章
相關標籤/搜索