1. 程式人生 > >redis基本命令(一)

redis基本命令(一)

1.Redis命令

1.1獲得符合規則的鍵名列表

keys pattern


1.2判斷一個鍵是否存在

exists key

1.3刪除鍵

del key


1.4獲得鍵值的資料型別

type key

2.redis字串型別

2.1賦值與取值

set key value

get key

2.2 遞增數字

字串型別可以儲存任何形式的字串,當儲存的字串是整數形式時,redis提供了一個使用的命令INCR,其作用是讓當前鍵值遞增,並返回遞增後的值,用法為:

incr num

當要操作的鍵不存在時會預設鍵值為0,所以第一次遞增後的結果是1.當鍵值不是整數時redis會提示錯誤。

2.3 增加指定的整數

incrby key increment

2.4 減少指定的整數

decrby key decrement

2.5 增加指定浮點數

Incrbyfloat key increment

2.6 像尾部追加值

append key value

2.7 獲取字串長度

strlen key

2.8 同時獲得/設定多個鍵值

mget key [key…]

mset key value[key value …]

2.9 位操作

getbit key offset

setbit key offset value

bitcount key [start] [end]

bitop operation destkey key [key …]

3.雜湊型別

雜湊型別適合儲存物件:使用物件類別和ID構成鍵名,使用欄位表示物件的屬性,而欄位值則只儲存屬性值。

3.1、賦值與取值

hset key fieldvalue

hget key field

hmset key fieldvalue [key field value]

hgetall key

hset命令的方便之處在於不區分插入和更新操作,這意味著修改資料時不用事先判斷欄位是否存在來決定要執行的是插入操作還是更新操作。當執行的是插入操作時hset命令會返回1,當執行的是更新操作時hset返回0.更進一步當鍵本身不存在時,hset命令還會自動建立它。

3.2.判斷欄位是否存在

hexists key field

hexists命令用來判斷一個欄位是否存在,如果存在返回1,否則返回0.

3.3.當欄位不存在時賦值

hsetnx key field value

hsetnx命令與hset命令類似,區別在於如果欄位已經存在,hsetnx命令將不執行任何操作。

3.4.增加數字

hincrby key field increment

hincrby命令與incrby類似,可以使欄位值增加指定的整數。雜湊型別沒有hincr命令,但是可以通過hincrby key field 1來實現。

3.5.刪除欄位

hdel key field [field …]

hdel命令可以刪除一個或多個欄位,返回值是被刪除的欄位個數。

3.6 只獲取欄位名或欄位值

hkeys key

hvals key

3.7 獲得欄位數量

hlen key

4.列表型別

列表型別可以儲存一個有序的字串列表,常用的操作是向列表兩端新增元素,或者獲得列表的某一個片段。

列表型別內部是使用雙向列表實現的,所以向列表兩端新增元素的時間複雜度為O(1),獲取越接近兩端的元素速度就越快。這意味著及時是一個有幾千萬元素的列表,獲取頭部或尾部的10條記錄也是挺快的。

不過使用連結串列的代價是通過索引訪問元素比較慢,這種特性使列表型別能非常快速地完成資料庫難以應付的場景:如社交網站的新鮮事,我們關心的只是最新的內容,使用列表型別儲存,即使新鮮事的總數達到幾千萬個,獲取其中最新的100調資料也是極快的。同樣因為在兩端插入記錄的事件負責度是O(1),列表型別也適合用來記錄日誌,可以保證新日誌的速度不會收到已有入職數量的影響。

4.1 向列表兩端增加元素

lpush key value [value …]

rpush key value [value …]

lpush命令用來想列表左邊增加元素,返回值表示增加元素後列表的長度。

rpush命令用來想列表右邊增加元素,返回值表示增加元素後列表的長度。

4.2 從列表兩端彈出元素

lpop key

rpop key

lpop命令可以從列表左邊彈出一個元素。Lpop命令執行分兩步操作:第一步是將列表左邊的元素從列表中移除,第二步是返回被移除的元素值。

rpop命令從列表右邊彈出一個元素。

4.3 獲取列表中元素個數

llen key

當鍵不存在時llen會返回0;

llen命令的功能類似SQL語句SELECTCOUNT(*) FROM table_name,但是llen的時間複雜度為O(1),使用時redis會直接讀取現成的值,而不需要像部分關係資料庫那樣需要遍歷一遍資料表來統計條目數量。

4.4 獲得列表片段

lrange key start stop

lange 命令是列表型別最常用的命令之一,它能夠獲得列表中的某一片段。Lrange命令將返回索引從start到stop之間的所有元素。Redis的列表起始索引為0.

4.5 刪除列表中指定的值

Lrem key count value

Lrem命令會刪除列表中前count個值為value的元素,返回值是實際刪除的元素個數。根據count值的不同,lrem命令的執行方式會略有差異:

         當count > 0時lrem命令會從列表左邊開始刪除前count個值為value的元素;

         當count < 0時lrem命令會從列表右邊開始刪除前|count|個值為value的元素;

         當count = 0 時lrem命令會刪除所有值為value的元素。

4.6 獲得/設定指定索引的元素值

lindex key index

lset key index value

4.7 只保留列表指定片段

ltrim key start end

4.8 向列表中插入元素

Linsert key before|after pivot value

linsert 命令首先會在列表中從左到右查詢值為pivot的元素,然後根據第二個引數是before還是after來決定將alue插入到該元素的前面還是後面。

Linsert命令的返回值是插入後列表的元素個數。