Redis學習記錄

2021-09-17 08:45:09 字數 3061 閱讀 5712

支援儲存的value型別包括:string(字串)、list(鍊錶)、set(集合)、zset(有序集合)、哈市(雜湊表)

命令原型:set key value

描述:設定該key持有特定的字串value,如果該key已經存在,就覆蓋它。

返回值:總是返回「ok」。

get key

獲取指定key的value,如果該key關聯的value不是string型別,就返回報錯資訊,get命令只能用於獲取string value。

getset key value

原子性的設定該key為指定的value,同時返回該key的原有值。也只能返回string型別,否則報錯。

如果不存在,返回nil。

incr key

將指定key的value原子性的遞增1。如果key不存在,其初始值為0。如果value的值不能轉換為整數型,則返回相應錯誤資訊。該操作取值範圍為64位有符號整數。

返回值:遞增後的value。

decr key

將指定key的value原子性的遞減1。如果key不存在,初始值為0,遞減後為-1。其他和遞增數字一樣。

incrby key increment

將指定key的值增加increment,其他和增1一樣。

decrby key decrement

將指定key的值減少decrement

原子性完成兩個操作,一是設定該key的值為指定字串,同時設定該key在redis伺服器中的存活時間(秒數)。主要應用於redis被當做cache伺服器時使用。

setnx key value

如果指定的key不存在,則設定該key持有指定字串value。如果key已經存在,則該命令不做任何操作。

返回值:1表示設定成功,否則0

addpend key value

如果key存在,將引數value追加到已存在value的末尾。如果不存在,會建立乙個新的key/value

返回值:追加後value的長度。

strlen key value

返回指定key的字元值長度,如果value不是string型別,redis將執行失敗並返回相關錯誤資訊。

返回值:返回指定key的value字元長度,如果該key不存在,返回0

mset key value [key value …]

該命令原子性的完成引數中所有key/value的設定操作,其具體行為可以看成是多次迭代執行set命令

返回值:始終返回ok

mget key [key …]

返回所有指定keys的values,如果其中乙個key不存在,該key的value返回nil。

返回值:返回一組指定keys的values的列表

msetnx key value [key value …]

完成引數中所有key/value的設定操作,可以看做是多次迭代setnx命令。注意:如果這一批keys中有任意乙個key已經存在,那麼該操作全部回滾,所有修改將不會生效。

返回值:1表示所有keys都設定成功,0表示沒有任何key被修改。

list型別是按照插入排序的字串鍊錶,可以在其頭部和尾部新增元素。插入時若該鍵不存在,則建立新的鍊錶。若該鍵中所有元素被移除,那麼它也會從資料庫中刪除。

當我們在鍊錶兩端插入或刪除元素,會非常高效。若在鍊錶中間操作,將會非常低效。

lpush key value[value …]

在指定key所關聯的list value的頭部插入引數中給出的所有values。如果該key不存在, 該命令將在插入之前建立乙個與key關聯的空鍊錶,之後再將資料從鍊錶的頭部插入。如果改鍵value不是鍊錶型別,返回錯誤資訊。

返回值:插入後的鍊錶元素的數量

rpush key value[value…]

和向左端新增元素一樣,只是從尾部插入

lpushx key value

緊有當前引數指定的key時,才會從頭部插入value,否則不會有任何操作

返回值:插入後元素數量。

rpushx key value

和lpushx相反,有key時從尾部插入value。

lpop key

返回並彈出與之關聯的鍊錶的頭部第乙個元素。若該key不存在,返回nil。

返回值:鍊錶頭部的元素

rpop key

返回並彈出尾部第乙個元素。和lpop方向相反。

llen key

返回與key關聯鍊錶元素的數量。如果key不存在,返回0。如果value不是鍊錶,返回錯誤資訊。

返回值:鍊錶中元素的數量

lrange key start stop

start和stop的值都可以取負值,-1將表示最後乙個元素,即尾部元素,-2表示倒數第二個元素以此類推。該命令在獲取元素是,start和end位置上的值都會被取出。如果start的值大於鍊錶中元素的數量,空煉表將會被取出。如果end的值大於元素的數量,那獲取的是從start位置開始,鍊錶中剩餘的所有元素

返回值:返回指定範圍內元素的列表。

lrem key count value

在指定key關聯的鍊錶中,刪除前count個值等於value的元素。

如果count大於0,從頭到尾遍歷並刪除。如果小於0,從尾到頭遍歷並刪除。如果count等於0,則刪除鍊錶中所有等於value的元素。如果k也不存在,直接返回0。

返回值:返回被刪除的元素數量。

lset key index value

設定鍊錶中指定位置的值為新值。其中0表示第乙個元素,即頭部元素,-1表示尾部元素。如果index超過元素的數量範圍,返回相關錯誤資訊。

lindex key index

返回鍊錶中指定位置的元素。

index是0,表示頭部元素,是-1,表示尾部元素。若關聯的不是鍊錶,返回相關錯誤資訊。

返回值:返回請求的元素,如果index超出範圍,則返回nil。

REDIS學習記錄

使用 redis 自己個人的理解 1.如果使用 key 查詢查詢範圍查詢條件,注意項應該有命中率的問題,就好像說資料分庫分表分割槽,避免全表掃類似。2.事務 2.1 關係型資料庫目的為也保證資料完事性,安全 2.2 redis目的為也進行redis語句的指化執行。命令 multi開戶事務,exec ...

redis學習記錄

什麼是redis redis是由義大利人salvatore sanfilippo 網名 antirez 開發的一款記憶體快取記憶體資料庫。redis全稱為 remote dictionary server 遠端資料服務 該軟體使用c語言編寫,redis是乙個key value儲存系統,它支援豐富的資...

redis學習記錄

keys select getset dbsize flushdb flushall del keyname redis中乙個string型別字串最大支援512mb redis 鍵 key 有關的操作 keys exists keyname move keyname dbname expire ke...