Redis 基本命令大全 一(key,string,list)

一 Redis 鍵(key)

1.1 type

Type 命令用於返回 key 所儲存的值的類型。

語法

type keyName

返回值:

	返回 key 的數據類型,數據類型有:
	none (key不存在)
	string (字符串)
	list (列表)
	set (集合)
	zset (有序集)
	hash (哈希表)

實例

set name "zhangsan"
type name
string

1.2 pexpireat

 PEXPIREAT 命令用於設置 key 的過期時間,已毫秒爲單位。key 過期後將不再可用。

語法

pexpireat keyName 毫秒值

返回值:

設置成功返回 1
key不存在或不能爲key設置過期時間時返回 0

實例

pexpireat name 10000000

1.3 expireat

 EXPIREAT 命令用於以時間戳的方式設置key的過期時間,過期後key不可用

語法

expireat keyName 時間戳

返回值:

設置成功返回 1
key不存在或不能爲key設置過期時間時返回 0

實例

expireat name 1293840000
(integer) 1

1.4 expire

 EXPIRE 命令用於以秒的方式設置key的過期時間,過期後key不可用

語法

expireat keyName 秒值

返回值:

設置成功返回 1
key不存在或不能爲key設置過期時間時返回 0

實例

expireat name 60
(integer) 1

1.5 persist

PERSIST 命令用於移除指定key的過期時間,使key永不過期

語法

persist keyName 

返回值:

移除成功返回 1
key不存在或沒有爲key設置過期時間返回 0

實例

persist name
(integer) 1

1.6 ttl

TTL 命令用於返回以秒爲單位的key的剩餘過期時間

語法

ttl keyName 

返回值:

當key不存在時返回-2
當key存在但沒有設置過期時間時返回-1
否則以秒爲單位返回key的剩餘過期時間

實例

ttl name
(integer) 59

1.7 pttl

PTTL 命令用於返回以毫秒爲單位的key的剩餘過期時間

語法

pttl keyName 

返回值:

當key不存在時返回-2
當key存在但沒有設置過期時間時返回-1
否則以秒爲單位返回key的剩餘過期時間

實例

pttl name
(integer) 59000

1.8 rename

 RENAME 命令用於修改key的名稱

語法

rename keyName newKeyName

返回值:

改名成功返回 1
改名失敗返回一個錯誤
當keyName和newKeyName 相同時,或者keyName不存在時返回一個錯誤
當newKeyName存在時會覆蓋舊值

實例

rename name username

1.9 renamenx

 RENAMENX 命令用於在新的key不存在時修改key的名稱

語法

renamenx keyName newKeyName

返回值:

改名成功返回 1
如果newKeyName已經存在了,返回0
如果keyName不存在返回以error

實例

renamenx  name username
(integer) 1  //name存在   username不存在

renamenx  name username
(integer) 0  //name存在   username存在

renamenx  name username
(error) ERR no such key  //name不存在   username存在

備註:renamenx 和 rename 最大的區別在於newKeyName 存在時rename會覆蓋舊值,renamenx會返回0不執行任何操作

1.10 randomkey

RANDOMKEY 命令用於從當前數據庫返回一個隨機的key

語法

randomkey

返回值:

當數據庫不爲空時返回一個隨機的key
當數據庫爲空時返回一個nil

實例

randomkey
"name"

1.11 del

DEL 命令用於刪除已存在的key

語法

del keyName

返回值:

被刪除key的數量

實例

del name
(integer) 1

1.12 exists

EXISTS 命令用於判斷key是否存在

語法

exists keyName

返回值:

key存在返回1
key不存在返回0

實例

exists name
(integer) 1

1.13 keys

EKYS 命令用於檢查所有給定模式的key

語法

keys 模式

返回值:

符合模式的key的列表

實例

keys name*
(integer) 1  //返回所有以name開頭的key的列表

二 Redis 字符串(string)

2.1 set

SET 命令用於設置給定key的值,如果key存在就覆寫,無視類型

語法

set keyName value

返回值:

OK

實例

set name zhangsan
OK

2.2 setex

SETEX  命令用於給指定的key設置過期時間(單位:秒)和值,如果key已經存在,則覆蓋

語法

setex keyName 過期時間(秒) value

返回值:

OK

實例

setex name 60 zhangsan
OK

2.3 psetex

PSETEX  命令用於給指定的key設置過期時間(單位:毫秒)和值,如果key已經存在,則覆蓋

語法

psetex keyName 過期時間(毫秒) value

返回值:

OK

實例

psetex name 60000 zhangsan
OK

2.4 setnx

SETNX(set if not exists)  命令用於當key不存在時,給指定的key設置值

語法

setnx keyName  value

返回值:

設置成功返回1
設置失敗返回0

實例

setnx name zhangsan
(integer) 0

2.5 mset

MSET 命令用於同時設置一個或多個key - value 對

語法

msetnx key1 value1 key2 value2 ...

返回值:

OK

實例

mset name1 zhangsan name2 lisi
OK

2.6 strlen

STRLEN 命令用於獲取指定key的字符串的長度

語法

strlen keyName 

返回值:

返回字符串的長度
如果key不是字符串,返回一個error

實例

strlen name
(integer) 8

2.7 setrange

SETRANGE 命令用於使用指定的字符串替換原字符串,從原字符串的offset位置開始

語法

setrange key offset(起始位置) value

返回值:

被修改後字符串的長度

實例

set name zhangsan
setrange name 0 "lisi"
(integer) 8  //這是name的值爲lisigsan   所以長度爲8

2.8 getrange

GETRANGE 命令用於獲取存儲在指定key中字符串的子字符串,截取範圍由start 和  end決定

語法

getrange key start end

返回值:

截取到的子字符串

實例

getrange name1 0 5
"zhangs"

2.9 get

GET 命令用於獲取指定key的值,如果key不存在返回nil

語法

get keyName

返回值:

key的值
如果key不存在返回nil
如果key不是字符串類型,返回error

實例

get name
"zhangsan"

2.10 mget

MGET 命令用於獲取一個或多個key的值,如果某個key不存在,那麼這個key返回nil

語法

mget keyName1 keyName2 ...

返回值:

一個包含所有key的值的列表

實例

mget name name1
"zhangsan"
(nil)

2.11 getset

GETSET 命令用於獲取指定key的值,並設置新值

語法

getset keyName value

返回值:

返回key的舊值
當key不存在時返回nil,並設置新值
當可以存在,但不是字符串時返回error

實例

getset name lisi
"zhangsan"

2.12 incr

INCR 命令用於將key存儲的數字增一
如果key不存在,會先初始化爲0,然後在增一

語法

incr keyName

返回值:

返回incr命令之後key的值
如果key不能轉換爲整數,或者key不是字符串,那麼返回一個error

實例

incr num
(integer) 1

2.13 incrbyfloat

INCRBYFLOAT 命令用於將key存儲的數字進行浮點數增加操作
如果key不存在,會先初始化爲0,然後在相加

語法

incrbyfloat keyName floatNum(需要增加的數)

返回值:

返回incrbyfloat命令相加之後key的值
如果key不能轉換爲浮點數,或者key不是字符串,那麼返回一個error

實例

incrfloat numFloat 2.5
"6.5"

2.14 decr

DECR 命令用於將key存儲的數字減一
如果key不存在,會先初始化爲0,然後在減一

語法

decr keyName

返回值:

返回decr命令之後key的值
如果key不能轉換爲整數,或者key不是字符串,那麼返回一個error

實例

decr num
(integer) 0

2.15 decrby

DECRBY 命令用於將key存儲的數字減去指定的值
如果key不存在,會先初始化爲0,然後在進行相減

語法

decrby keyName num(被減去的整數)

返回值:

返回decrby命令相減之後key的值
如果key不能轉換爲整數,或者key不是字符串,那麼返回一個error

實例

decrby num 1
(integer) 5

備註:incr decr incrbyfloat decrby 這四個命令中只有incrbyfloat能操作浮點數,其他都不能,可以用incrbyfloat num -3.6 這樣的操作進行浮點數的相減操作

2.16 append

APPEND 命令用於爲指定的key追加值
如果key存在,append命令會將value追加到原來值的末尾
如果key不存在,append命令就將key的值設置爲value,

語法

append keyName value

返回值:

返回追加字符串後字符串的長度

實例

append name lisi
(integer) 12

三 Redis 列表(List)

3.1 lpush

LPUSH 命令用於將一個或多個值插入列表頭部,如果key不存在則創建一個空的列表並執行lpush命令

語法

lpush key value1 value2

返回值:

返回執行lpush命令後列表的長度
如果key不是列表,則返回一個error

實例

lpush namelist zhangsan lisi
(integer) 2

3.2 lpushx

LPUSHX 命令用於將一個或多個值插入已存在的列表頭部,如果key不存在則操作無效

語法

lpushx key value1 value2

返回值:

返回執行lpushx命令後列表的長度

實例

lpushx namelist xiaoming wangmei
(integer) 4

3.3 rpush

RPUSH 命令用於將一個或多個值插入列表尾部(最右邊),如果key不存在則創建一個空的列表並執行rpush命令

語法

rpush key value1 value2

返回值:

返回執行rpush命令後列表的長度
如果key不是列表,則返回一個error

實例

rpush namelist wangwu wangermazi
(integer) 4

3.4 rpushx

RPUSHX 命令用於將一個或多個值插入已存在的列表尾部,如果key不存在則操作無效

語法

rpushx key value1 value2

返回值:

返回執行rpushx命令後列表的長度

實例

rpushx namelist xiaoli xiaowang
(integer) 6

3.5 lpop

LPOP 命令用於移除並返回列表的第一個元素

語法

lpop key 

返回值:

返回列表的第一個元素
如果key不是列表,則返回一個error
如果key爲空則返回一個nil

實例

lpop namelist
"lisi"

3.6 rpop

RPOP 命令用於移除並返回列表的最後一個元素

語法

rpop key 

返回值:

返回列表的最後一個元素
如果key不是列表,則返回一個error
如果key爲空則返回一個nil

實例

rpop namelist
"wangermazi"

3.7 blpop

BLPOP 命令用於移除並返回列表的第一個元素,如果列表沒有元素會阻塞直到等待超時,或發現可彈出的元素爲止。

語法

blpop key timeout

返回值:

返回一個含有兩個元素的列表,第一個元素爲key,第二個元素爲value
如果列表不存在或者列表爲空,等待超時時間過後,會返回一個nil

實例

blpop aaaaaa  1
(nil)
(1.00s)  //列表不存在  等待超時時間過後,返回一個nil

blpop list 10
1) "list"
2) "zhangsan"  //列表裏有元素立馬彈出

blpop list 10    //當列表裏沒有元素時,會在這裏等待
1) "list"		//用另一個線程往list裏放入lisi ,會在這裏立馬彈出 
2) "wangwu"
(6.51s)			//這裏時等待時間

3.8 brpop

BRPOP 命令用於移除並返回列表的最後一個元素,如果列表沒有元素會阻塞直到等待超時,或發現可彈出的元素爲止。

語法

brpop key timeout

返回值:

返回一個含有兩個元素的列表,第一個元素爲key,第二個元素爲value
如果列表不存在或者列表爲空,等待超時時間過後,會返回一個nil

實例

brpop aaaaaa  1
(nil)
(1.00s)  //列表不存在  等待超時時間過後,返回一個nil

brpop list 10
1) "list"
2) "zhangsan"  //列表裏有元素立馬彈出

brpop list 10    //當列表裏沒有元素時,會在這裏等待
1) "list"		//用另一個線程往list裏放入lisi ,會在這裏立馬彈出 
2) "wangwu"
(6.51s)			//這裏時等待時間

3.9 lrange

LRANGE 命令用於返回列表內指定區間的元素,區間偏移量由start和end指定,
數字0表示第一個元素,1表示第二個元素 ,以此類推
數字-1表示最後一個元素,-2便是倒數第二個元素,以此類推

語法

lrange key start end

返回值:

返回一個包含指定區別內元素的列表

實例

lrange list 0 -1
1) "zhaoliu"
2) "wangwu"
3) "lisi"
4) "zhangsan"

3.10 rpoplpush

RPOPLPUSH  命令用於移除列表的最後一個元素,將他添加到另一個列表並返回

語法

rpoplpush oldList newList

返回值:

被彈出的元素

實例

RPOPLPUSH list mylist
"zhangsan"   //將list中的第最後一個元素取出並將它放入新的列表mylist中

3.11 brpoplpush

BRPOPLPUSH  命令用於移除列表的最後一個元素,將他添加到另一個列表並返回,如果列表沒有元素會阻塞直到等待超時,或發現可彈出的元素爲止。

語法

brpoplpush oldList newList

返回值:

被彈出的元素

實例

BRPOPLPUSH mylist list 10
"zhangsan"					//原理和blpop和brpop命令相似

3.12 linsert

LINSERT 命令用於在列表元素的前或後插入元素,當元素不存在時不執行任何操作,當列表不存在時,不執行任何操作

語法

linsert key before|after existingValue newValue

返回值:

返回列表長度
如果沒有找到指定元素返回-1
如果key不存在或者爲空返回0

實例

127.0.0.1:6379[3]> lrange list 0 -1
1) "zhaoliu"
2) "wangwu"
3) "lisi"
4) "zhangsan"
127.0.0.1:6379[3]> LINSERT list before wangwu xiaoming  //在wuangwu前面插入xiaoming
(integer) 5
127.0.0.1:6379[3]> lrange list 0 -1
1) "zhaoliu"
2) "xiaoming"
3) "wangwu"
4) "lisi"
5) "zhangsan"

127.0.0.1:6379[3]> linsert list after aaa bbb 
(integer) -1   //aaa不存在返回-1

127.0.0.1:6379[3]> linsert list2 after aaa bbb
(integer) 0		//list2不存在返回0

3.13 lindex

LINDEX 命令用於通過索引獲取元素的值
數字0表示第一個元素,1表示第二個元素 ,以此類推
數字-1表示最後一個元素,-2便是倒數第二個元素,以此類推

語法

lindex key index

返回值:

返回指定下標元素的值
如果下標不存在返回nil

實例

127.0.0.1:6379[3]> lindex list 2
"wangwu"

3.14 lset

LSET 命令用於通過索引設置元素的值
數字0表示第一個元素,1表示第二個元素 ,以此類推
數字-1表示最後一個元素,-2便是倒數第二個元素,以此類推

語法

lset key index value

返回值:

設置成功返回OK
如果索引不存在或者對一個空的列表進行lset時返回error

實例

127.0.0.1:6379[3]> lrange list 0 -1
1) "zhaoliu"
2) "xiaoming"
3) "wangwu"
4) "lisi"
5) "zhangsan"
127.0.0.1:6379[3]> lset list -1 laozhao
OK
127.0.0.1:6379[3]> lrange list 0 -1
1) "zhaoliu"
2) "xiaoming"
3) "wangwu"
4) "lisi"
5) "laozhao"

3.15 llen

LLEN 命令用於返回列表的長度
如果key不存在返回0
如果key不是列表返回error

語法

llen key

返回值:

返回列表的長度

實例

127.0.0.1:6379[3]> llen list
(integer) 5

3.16 lrem

LREM 命令用於根據參數count的值,移除於value相等的元素
count > 0 移除與count個與value相等的元素
count=0 移除所有與value相等的元素

語法

lrem key count value

返回值:

被移除元素的數量

實例

127.0.0.1:6379[3]> lrange list 0 -1
1) "zhaoliu"
2) "xiaoming"
3) "wangwu"
4) "lisi"
5) "laozhao"
127.0.0.1:6379[3]> lrem list 1 lisi   //移除一個lisi
(integer) 1
127.0.0.1:6379[3]> lrange list 0 -1
1) "zhaoliu"
2) "xiaoming"
3) "wangwu"
4) "laozhao"

接下文: Redis 基本命令大全 二.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章