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
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命令會在原值的末尾處追加指定的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),謝謝閱讀,希望對你有所幫助。