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
keyalready exists and is a string, this command appends thevalueat the end of the string. Ifkeydoes 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ì)你有所幫助。