Redis數(shù)據(jù)類型Strings、Lists常用操作指令

Redis數(shù)據(jù)類型Strings、Lists常用操作指令

Strings常用操作指令

GET、SET相關(guān)操作

# GET 獲取鍵值對(duì)
127.0.0.1:6379> get name
(nil)

# 設(shè)置失效時(shí)間的兩種方式
# 設(shè)置鍵值對(duì)及過期時(shí)間
127.0.0.1:6379> setex name 10 enjoyitlife
OK
127.0.0.1:6379> get name
"enjoyitlife"
# 等待10s后再次獲取
127.0.0.1:6379> get name
(nil)
# 設(shè)置鍵值對(duì)及過期時(shí)間
127.0.0.1:6379> SET name enjoyitlife EX 10
OK

#SETNX SET IF NOT EXIST 不存時(shí)在設(shè)置
127.0.0.1:6379> SETNX name "enjoyitlife"
(integer) 1 
## 再次執(zhí)行就不會(huì)設(shè)置了 因?yàn)镵ey已經(jīng)存在了
127.0.0.1:6379> setnx name enjoyitlife
(integer) 0

# 獲取鍵值對(duì)
127.0.0.1:6379> get name
"enjoyitlife"
# 刪除鍵值對(duì)
127.0.0.1:6379> del name
(integer) 1

MSET MGET批量設(shè)置鍵值對(duì)

## MSET MGET 批量獲取
127.0.0.1:6379> mset name enjoyitlife  age 18
OK
127.0.0.1:6379> get name
"enjoyitlife"
127.0.0.1:6379> get age
"18"
127.0.0.1:6379> mget name age
1) "enjoyitlife"
2) "18"

INCR自增, INCRBY指定自增步長, INCRBYFLOAT 浮點(diǎn)數(shù)自增

# INCR INCRBY  自增 指定自增間隔
127.0.0.1:6379> set num 18
OK
127.0.0.1:6379> INCR num
(integer) 19
127.0.0.1:6379> INCRBY num 6
(integer) 25
# INCRBYFLOAT 浮點(diǎn)類型相加
127.0.0.1:6379> INCRBYFLOAT num 3.05
"28.05"

DECR 自減 DECRBY指定步長自減

127.0.0.1:6379> set num 18
OK
127.0.0.1:6379> DECR num
(integer) 17
127.0.0.1:6379> DECRBY num 3
(integer) 14
127.0.0.1:6379> DECRBY num 3
(integer) 11

APPEND 追加操作

If key already exists and is a string, this command appends the value at the end of the string. If key does not exist it is created and set as an empty string, so APPEND will be similar to SET in this special case.

如果key存在,append命令會(huì)在原值的末尾處追加指定的value,如果key不存在,則會(huì)新建一個(gè)空字符串,并且追加對(duì)應(yīng)的value。

# APPEND 字符串增加 如果字符串不存在,初始化后追加。
127.0.0.1:6379> get name
"enjoyitlife"
127.0.0.1:6379> APPEND name 2019
(integer) 15
127.0.0.1:6379> get name
"enjoyitlife2019"
127.0.0.1:6379> append name1 2019
(integer) 4

SETRANGE GETRANGE 字符串的替換與截取

SETRANGE:改變?cè)瓉淼淖址?從指定下標(biāo)開始替換相應(yīng)的值。如果key存在,則直接替換,如果key不存在,且offset大于0,會(huì)用\x00補(bǔ)全。

## setrange key不存在
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> SETRANGE name 2 2019
(integer) 6
127.0.0.1:6379> get name
"\x00\x002019"
127.0.0.1:6379> set name enjoy
OK
# setrange key存在
127.0.0.1:6379> SETRANGE name 0 2019
(integer) 5
127.0.0.1:6379> get name
"2019y"

GETRANGE []取值,不改變?cè)瓉淼淖址?/strong>。

127.0.0.1:6379> get name
"2019y"
127.0.0.1:6379> GETRANGE name 0  1
"20"
127.0.0.1:6379> get name
"2019y"

Strings其他常用指令

## STRLEN 返回對(duì)應(yīng)value的長度
127.0.0.1:6379> STRLEN name
(integer) 11

Lists常用操作指令

LPUSH LPUSHX LPOP 隊(duì)列頭部相關(guān)操作

# 將所有指定的值插入到存儲(chǔ)在鍵上的列表的頭部,可以一次寫入多個(gè)值,值是依次寫入隊(duì)列頭部。
127.0.0.1:6379> lpush datalist AA AB AC
(integer) 3

# LPUSHX 只有在鍵已存在并保存列表的情況下,才將指定的值插入存儲(chǔ)在鍵的列表頭部。 與 LPUSH 相反,當(dāng)鍵不存在時(shí)將不執(zhí)行任何操作
127.0.0.1:6379> LPUSHX datalist AF
(integer) 4
# datalist2 沒有值 所以不會(huì)有任何操作。
127.0.0.1:6379> LPUSHX datalist2 AF
(integer) 0
# LPOP 彈出頭部元素
127.0.0.1:6379> lpop datalist
"AF"

RPUSH RPOP RPUSHX RPOPLPUSH 隊(duì)列尾部相關(guān)操作

#  RPUSH  新增隊(duì)列集合 并且從尾部寫入元素
127.0.0.1:6379> RPUSH datalist AA AB AC
(integer) 3
# RPOP  隊(duì)尾彈出
127.0.0.1:6379> RPOP datalist 
"AC"
# RPUSHX  只有在鍵已存在并保存列表的情況下,才將指定的值插入存儲(chǔ)在鍵的列表尾部。 與 RPUSH 相反,當(dāng)鍵不存在時(shí)將不執(zhí)行任何操作
127.0.0.1:6379> RPUSHX datalist AF
(integer) 3
127.0.0.1:6379> RPUSHX datalist2 AF
(integer) 0
# RPOPLPUSH 原子操作 移除原數(shù)列表的隊(duì)尾元素到目標(biāo)元素的頭部。
127.0.0.1:6379> RPOPLPUSH datalist datalistnew
"AF"
127.0.0.1:6379> LINDEX datalistnew 0
"AF"

BLPOP BRPOP BRPOPLPUSH 阻塞操作

Blpop、BRPOP 、BRPOPLPUSH 對(duì)應(yīng)LPOP、RPOP RPOPLPUSH的阻塞版本。

127.0.0.1:6379> BLPOP datalist AN 10
1) "datalist"
2) "AB"
127.0.0.1:6379> BLPOP datalist AN 10
(nil)
(10.04s)

其他常用操作指令

# LLEN 返回集合長度
127.0.0.1:6379> LLEN namelist
(integer) 3
# LRANGE 返回指定下標(biāo)中的value
127.0.0.1:6379> LRANGE namelist 0 4
1) "wangwu"
2) "lisi"
3) "zhangsan"
#LTRIM  保留指定元素下標(biāo)的元素 刪除其他元素
127.0.0.1:6379> LTRIM namelist 0 1
OK
127.0.0.1:6379> LRANGE namelist 0 5
1) "wangwu"
2) "lisi"

以上就是Redis的數(shù)據(jù)類型的Strings和Lists是常用操作指令了,更多其他指令可以參考官網(wǎng),Redis官網(wǎng),謝謝閱讀,希望對(duì)你有所幫助。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容