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

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

Strings常用操作指令

GET、SET相關操作

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

# 設置失效時間的兩種方式
# 設置鍵值對及過期時間
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)
# 設置鍵值對及過期時間
127.0.0.1:6379> SET name enjoyitlife EX 10
OK

#SETNX SET IF NOT EXIST 不存時在設置
127.0.0.1:6379> SETNX name "enjoyitlife"
(integer) 1 
## 再次執(zhí)行就不會設置了 因為Key已經(jīng)存在了
127.0.0.1:6379> setnx name enjoyitlife
(integer) 0

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

MSET MGET批量設置鍵值對

## 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 浮點數(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 浮點類型相加
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命令會在原值的末尾處追加指定的value,如果key不存在,則會新建一個空字符串,并且追加對應的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:改變原來的字符串 從指定下標開始替換相應的值。如果key存在,則直接替換,如果key不存在,且offset大于0,會用\x00補全。

## 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 []取值,不改變原來的字符串。

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 返回對應value的長度
127.0.0.1:6379> STRLEN name
(integer) 11

Lists常用操作指令

LPUSH LPUSHX LPOP 隊列頭部相關操作

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

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

RPUSH RPOP RPUSHX RPOPLPUSH 隊列尾部相關操作

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

BLPOP BRPOP BRPOPLPUSH 阻塞操作

Blpop、BRPOP 、BRPOPLPUSH 對應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 返回指定下標中的value
127.0.0.1:6379> LRANGE namelist 0 4
1) "wangwu"
2) "lisi"
3) "zhangsan"
#LTRIM  保留指定元素下標的元素 刪除其他元素
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),謝謝閱讀,希望對你有所幫助。

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

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

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