今天小編為大家整理了一些,在dos環(huán)境中經(jīng)常會使用到的redis命令,希望對你有所幫助。
keys 命令
? 匹配一個字符
* 匹配任意個(包括0個)字符
[] 匹配括號間的任一個字符,可以使用 "-" 符號表示一個范圍,如 a[b-d] 可以匹配 "ab","ac","ad"
\x 匹配字符x,用于轉(zhuǎn)義符號,如果要匹配 "?" 就需要使用 \?
判斷一個鍵值是否存在
exists key
如果存在,返回整數(shù)類型 1 ,否則返回 0
刪除鍵
del key [key.....]
可以刪除一個或多個鍵,返回值是刪除的鍵的個數(shù)
注意:不支持通配符刪除
獲得鍵值的數(shù)據(jù)類型
type key
返回值可能是 string(字符串類型) hash(散列類型) list(列表類型) set(集合類型) zset(有序集合類型)
賦值與取值
set key value 賦值
get key 取值
遞增數(shù)字
incr key
當存儲的字符串是整數(shù)形式時,redis提供了一個使用的命令 incr 作用是讓當前的鍵值遞增,并返回遞增后的值
incr num
當要操作的鍵不存在時會默認鍵值為 0 ,所以第一次遞增后的結(jié)果是 1 ,當鍵值不是整數(shù)時 redis會提示錯誤
增加指定的整數(shù)
incrby key increment
incrby 命令與 incr 命令基本一樣,只不過前者可以通過 increment 參數(shù)指定一次增加的數(shù)值如:
incrby num 2
incrby num 3
減少指定的整數(shù)
decr key
decrby key increment
desc 命令與incr 命令用法相同,只不過是讓鍵值遞減
decrby 命令與 incrby命令用法相同
增加指定浮點數(shù)
incrbyfloat key increment
incrbyfloat 命令類似 incrby 命令,差別是前者可以遞增一個雙精度浮點數(shù),如:
incrbyfloat num 2.7
注意: ( 受reids 版本限制,版本需要大于 2.6 版本)
向尾部追加值
append key value
作用是向鍵值的末尾追加 value ,如果鍵不存在則將改鍵的值設(shè)置為 value,即相當于 set key value。返回值是追加后字符串的長度
如:append foo " hello word!"
獲取字符串長度
strlen key
返回鍵值的長度,如果鍵不存在則返回0
同時 獲得/設(shè)置 多個鍵值
mget key [key.....]
mset key value [key value .......]
位操作
getbit key offset
setbit key offset value
bitcount key [strart] [end]
bitop operation destkey key [key .....]
一個字節(jié)由8個二進制位組成,redis 提供了4個命令直接對二進制位進行操作
getbit 命令可以獲得一個字符串類型鍵指定位置的二進制位的值(0 或 1),索引從 0 開始,如果需要獲取的二進制位的索引超出了鍵值
的二進制位的實際長度則默認位值是 0
setbit 命令可以設(shè)置字符串類型鍵指定位置的二進制位的值,返回值是該位置的舊值,如果需要設(shè)置的位置超過了鍵值的二進制位的長
度,setbit 命令會自動將中間的二進制位設(shè)置為0,同理設(shè)置一個不存在的鍵的指定二進制位的值會自動將其前面的位賦值為 0
bitcount 命令可以獲得字符串類型鍵中值是1的二進制位個數(shù),可以通過參數(shù)來限制統(tǒng)計的字節(jié)范圍,如我們希望統(tǒng)計前兩個字節(jié)(即
"aa") 命令:bitcount foo 0 1 注意: ( 受reids 版本限制,版本需要大于 2.6 版本)
bittop 命令可以對多個字符串類型鍵進行位運算,并將結(jié)果存儲在destkey參數(shù)指定的鍵中。該命令支持的運算操作有 AND、 OR、
XOR、 NOT,
如我們對bar 和 aar 進行 OR 運算操作:
set foo1 bar
set foo2 aar
bitop OR res foo1 foo2
get res
注: ( 受reids 版本限制,版本需要大于 2.6 版本)
散列類型
賦值與取值
hset key field value
hget key field
hmset key field value [ field value ...... ]
hmget key field [ field ...... ]
hgetall key
hset 命令用來給字段賦值,而hget命令用來獲得字段的值
hset 命令的方便之處在于不區(qū)分插入和更新操作,這意味著修改數(shù)據(jù)時不用事先判斷字段是否存在來決定要執(zhí)行的是插入操作還是更新操
作,當執(zhí)行的是插入操作時, hset 命令返回 1 ,當執(zhí)行的是更新操作時,hset 命令返回的是 0 ,當鍵本身不存在時, hset 命令還會
自動建立他
hmset 設(shè)置多個鍵值
hmget 獲得多個鍵值
hgetall 獲取鍵中所有字段和字段值卻不知道鍵中有哪些字段時使用,返回的結(jié)果是字段和字段值組成的列表
判斷字段是否存在
hexists key field
存在返回 1 ,否則返回 0
當字段不存在時賦值
hsetnx key field value
hsetnx 命令與hset 命令類似,區(qū)別在于如果字段已經(jīng)存在,hsetnx 命令將不執(zhí)行任何操作
增加數(shù)字
hincrby key field increment
使字段值增加指定的整數(shù)
刪除字段
hdel key field [ field .....]
刪除一個或多個字段,返回值是被刪除的字段個數(shù)
只獲取字段名或字段值
hkeys key
hvals key
hkeys 獲取所有字段的名字
hvals 獲得鍵中所有字段的值
獲得字段數(shù)量
hlen key
列表類型
向列表兩端增加元素
lpush key value [ value ....... ]
rpush key value [ value ....... ]
lpush 命令用來向列表左邊增加元素,返回表示增加元素后列表的長度
rpush 命令用來向列表右邊增加元素,返回表示增加元素后列表的長度
從列表兩端彈出元素
lpop key
rpop key
lpop 命令可以從列表左邊彈出一個元素,lpop 命令執(zhí)行兩步操作,1:將列表左邊的元素從列表中移除,2:返回被移除元素值
rpop 命令可以從列表右邊彈出一個元素
獲取列表中元素個數(shù)
llen key
當鍵不存在時,llen 返回 0
獲得列表片段
lrange key start stop
獲得列表中的某一片段,返回索引從 start 到 stop 之間的所有元素(包括兩端的元素) 索引開始為 0
注:lrange 與很多語言中用來截取數(shù)組片段的方法有一點區(qū)別是 lrange 返回的值包含最右邊的元素
lrange 命令也支持負索引,表是從右邊開始計算序數(shù),如 ' -1 ' 表示最右邊第一個元素, ' -2 ' 表示最右邊第二個元素,一次類推
刪除列表中指定的值
lrem key count value
lrem 命令會刪除列表中前 count 個值為 value 的元素,返回值是實際刪除的元素個數(shù)。根據(jù)count 值的不同,lrem 命令執(zhí)行的方式會
略有差異
當 count > 0 時,lrem 命令會從列表左邊開始刪除前 count 個值為 value 的元素
當 count < 0 時,lrem 命令會從列表右邊開始刪除前count 個值為 value 的元素
當 count = 0 時,lrem 命令會刪除所有值為value的元素
獲得 / 設(shè)置 指定索引的元素值
lindex key index
lset key index value
lindex 命令用來返回指定索引的元素,索引從 0 開始 ,如果 index 是負數(shù)則表示從右邊開始計算的索引,最右邊元素的索引是 -1
lset 是通過索引操作列表的命令,它會將索引為 index 的元素賦值為 value
只保留列表指定片段
ltrim key start end
ltrim 命令可以刪除指定索引范圍之外的所有元素,其指定列表范圍的方法和 lrange 命令相同
ltrim 命令常和 lpush 命令一起使用來限制列表中元素的數(shù)量,比如記錄日志時我們希望只保留最近的 100 條日志,則每次加入新元素時
調(diào)用一次ltrim 命令即可;
向列表中插入元素
linsert key before | after pivot value
linsert 命令首先會在列表中從左到右查找值為 pivot 的元素,然后根據(jù)第二個參數(shù)是 before 還是 after 來決定將 value 插入到該元素的
前面還是后面,如果命令執(zhí)行成功,返回插入操作完成之后列表的長度。如果沒有找到 pivot 返回 -1 如果key 不存在或為空,返回 0
將元素從一個列表轉(zhuǎn)到另一個列表R
rpoplpush source destination
rpoplpush 先執(zhí)行 rpop 命令在執(zhí)行 lpush 命令。rpoplpush 命令先會從source 列表類型鍵的右邊彈出一個元素,然后將其加入到 destination 列表類型鍵的左邊,并返回這個元素的值,整個過程是原子的
集合類型
增加刪除命令
sadd key member [ member .... ]
srem key member [ member .... ]
sadd 命令用來向集合中增加一個或多個元素,如果鍵不存在則會自動創(chuàng)建。因為在一個集合中不能有相同的元素,所以如果要加入的元
素已經(jīng)存在與集合中就會忽略這個元素。返回值是成功加入的元素數(shù)量(忽略的元素不計算在內(nèi))
srem 命令用來從集合中刪除一個或多個元素,并返回刪除成功的個數(shù)
獲得集合中的所有元素
smembers key
返回集合中的所有元素
判斷元素是否在集合中
sismember key member
判斷一個元素是否在集合中是一個時間復雜度為 0(1) 的操作,無論集合中有多少個元素, sismember 命令始終可以極快的返回結(jié)果。當
值存在時 sismember 命令返回 1 ,當值不存在或者鍵不存在時返回 0
集合間運算
sdiff key [ key ...... ]
sdiff 命令用來對多個集合執(zhí)行差集運算。集合 A 與集合 B 的差集表示為 A- B ,代表所有屬于 A 且不屬于 B 的元素構(gòu)成的集合,即
A - B = { x| x∈A 且 x ∈/B }
命令使用方法:
sadd seta 1 2 3 4 6 7 8
sadd setb 2 3 4
sdiff seta setb
該命令支持同時傳入多個鍵, 計算順序是先計算 seta 和 setb 在計算結(jié)果與 setc 的差集
sadd setc 2 3 4
sdiff seta setb setc
sinter key [ key ..... ]
該命令用來對多個集合執(zhí)行交集運算。集合 A 與集合 B 的交集表示為 A∩B,代表所有屬于 A 且屬于 B 的元素構(gòu)成的集合
即 A∩B = { x| x∈A 且 x ∈B }
命令使用方法:
sinter seta setb
該命令同樣支持同時傳入多個鍵
sunion key [ key ...... ]
該命令用來對多個集合執(zhí)行并集運算。集合 A 與集合 B的并集表示為 A∪B ,代表所有屬于A或所有屬于B的元素構(gòu)成的集合
即 A∪B = { x| x∈A 或 x ∈B }
命令使用方法:
sunion seta setb
該命令同樣支持同時傳入多個鍵
獲得集合中元素的個數(shù)
scard key
進行集合運算并將結(jié)果存儲
sdiffstore destination key [ key ...... ]
sinterstore destination key [ key ...... ]
sunionstore destination key [ key ...... ]
sdiffstore 命令和 sdiff 命令功能一樣,唯一的區(qū)別就是前者不會直接返回運算的結(jié)果,而是將結(jié)果存在 destination 鍵中
sinterstore 這個命令類似于 sinter 命令,但它將結(jié)果保存到 destination 集合,而不是簡單地返回結(jié)果集。
sunionstore 這個命令類似于 sunion 命令,但它將結(jié)果保存到 destination 集合,而不是簡單地返回結(jié)果集。
隨機獲得集合中的元素
srandmember key [ count ]
該命令用來隨機從集合中獲取一個元素
還可以傳遞 count 參數(shù)來一次隨機獲得多個元素,根據(jù) count 的正負不同,具體表現(xiàn)也不同
當count 為正數(shù)時,srandmember 會隨機獲取從集合里獲得 count 個不重復的元素。如果 count 的值大于集合中的元素個數(shù),則
srandmember 會返回集合中的全部元素
當 count 為負數(shù)時,srandmember 會隨機從集合中獲得 |count| 個的元素,這些元素有可能相同
注:當傳遞count 參數(shù)時,在windows環(huán)境下提示命令參數(shù)錯誤
從集合中彈出一個元素
spop key
由于集合類型的元素是無序的,所以 spop 命令會從集合中隨機選擇一個元素彈出,返回值為被移除的隨機元素,如果 key 不存在或者
key 為空集時,返回 nil
有序集合類型(sorted set)
增加元素
zadd key score member [ score member ...... ]
zadd 命令用來向有序集合中加入一個元素和該元素的分數(shù),如果該元素已經(jīng)存在,則會用新的分數(shù)替換原有的分數(shù)。zadd命令的返回
值是新加入到集合中的元素個數(shù)(不包含之前已經(jīng)存在的元素)
獲得元素的分數(shù)
zscore key member
獲得排名在某個范圍的元素列表
zrange key start stop [ withscores ]
zrevrange key start stop [ withscores ]
zrange 命令會按照元素分數(shù)從小到大的順序返回索引從 start 到 stop 之間的所有元素(包含兩端的元素)。zrange 命令和 lrange 命
令十分相似,如索引都是從0開始,負數(shù)代表從后向前查找(-1 表示最后一個元素)。如果需要同時獲得元素的分數(shù)的話,可以在
zrange 命令的尾部加上 widthscores 參數(shù)
注:如果兩個元素的分數(shù)相同,redis會按照字典順序(即 0<9<A<Z<a<z 這樣的順序)來進行排列。如果元素的值是中文,則取決于
中文的編碼方式,如圖:
zrevrange 命令和 zrange 的唯一不同在于 zrevrange 是按照元素分數(shù)從大到小的順序給定結(jié)果的
獲得指定分數(shù)范圍內(nèi)的元素
zrangebyscore key min max [ withscores ] [ limit offs
網(wǎng)站名稱:一些你經(jīng)常會用到的redis命令
鏈接URL:http://jinyejixie.com/news32/105132.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、App設(shè)計、網(wǎng)站收錄、商城網(wǎng)站、動態(tài)網(wǎng)站、App開發(fā)
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源:
創(chuàng)新互聯(lián)