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