Redis的Strings、Lists經常使用操做指令


title: Redis的Strings、Lists經常使用操做指令
author: MegaSlark
date: 2019-10-02 12:52:17
summary: Redis的Strings和Lists經常使用操做指令合集。
categories: Redis
tags:redis

  • Redis
  • CentOS7

Redis的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 
## 再次執行就不會設置了 由於Key已經存在了
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 浮點數自增

# 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.centos

若是key存在,append命令會在原值的末尾處追加指定的value,若是key不存在,則會新建一個空字符串,而且追加對應的value。app

# 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補全。this

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

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 相反,當鍵不存在時將不執行任何操做
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 相反,當鍵不存在時將不執行任何操做
127.0.0.1:6379> RPUSHX datalist AF
(integer) 3
127.0.0.1:6379> RPUSHX datalist2 AF
(integer) 0
# RPOPLPUSH 原子操做 移除原數列表的隊尾元素到目標元素的頭部。
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的阻塞版本。code

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的數據類型的Strings和Lists是經常使用操做指令了,更多其餘指令能夠參考官網,Redis官網,謝謝閱讀,但願對你有所幫助。隊列

相關文章
相關標籤/搜索