redis命令詳解

2021-08-08 12:46:03 字數 3631 閱讀 9660

1.使用客戶端連線redis服務,需要有乙個redis客戶端

$ redis-cli -h host -p port -a password

如果是本地的redis服務可以直接使用命令,預設本地 6379埠

$ redis-cli

2.多個redis例項(多庫)

設定資料庫個數

127.0.0.1:6379> config set databases 8

查詢資料庫個數

127.0.0.1:6379> config get databases

切換資料庫(選擇資料庫6,預設連線資料庫0)

127.0.0.1:6379> select 6

3.redis對key的操作

del 刪除指定key(刪除key1)

127.0.0.1:6379[1]> del key1

(integer) 1

dump 序列化給定 key ,並返回被序列化的值

127.0.0.1:6379[1]> dump key1

"\x00\xc0\x0b\a\x00/\x95\xc2x/5\xa4u"

exists 查詢指定key是否存在

127.0.0.1:6379[1]> exists key1

(integer) 1

keys 查詢所有符合給定模式( pattern)的 key

127.0.0.1:6379[1]> keys *key*

1) "key1"

expire 設定key的過期時間

127.0.0.1:6379[1]> expire key1 20

(integer) 1

20秒後再查詢,key1已被刪除

move 移動key到其他庫(移動key1 到資料庫2)

127.0.0.1:6379[1]> move key1 2

(integer) 1

type 查詢key所儲存的值的型別

127.0.0.1:6379[1]> type key1

string

4.redis支援的資料型別(字串string,雜湊hash,列表list,集合set,有序集合sorted set)

4.1 字串string相關命令

set 設定指定key值

127.0.0.1:6379[1]> set key1 value1

okget 獲取指定key值

127.0.0.1:6379[1]> get key1

"value1"

getrange 返回指定key的子字串

127.0.0.1:6379[1]> getrange key1 0 2

"val"

mset 設定多個key-value

127.0.0.1:6379[1]> mset key4 value4 key5 value5

okmget 獲取多個給定key值對應的value

127.0.0.1:6379[1]> mget key1 key2

1) "value1"

2) "value2"

setnx 只有在 key 不存在時設定 key 的值(key1存在不儲存)

127.0.0.1:6379[1]> setnx key1 11

(integer) 0

strlen

返回 key 所儲存的字串值的長度

127.0.0.1:6379[1]> strlen key1

(integer) 6

incr

將 key 中儲存的數字值增一

127.0.0.1:6379[1]> get key3

"1"127.0.0.1:6379[1]> incr key3

(integer) 2

incrby 將 key 所儲存的值加上給定的增量值(increment)

127.0.0.1:6379[1]> get key3

"2"127.0.0.1:6379[1]> incrby key3 2

(integer) 4

decr 將 key 中儲存的數字值減一

127.0.0.1:6379[1]> get key3

"4"127.0.0.1:6379[1]> decr key3

(integer) 3

decrby key 所儲存的值減去給定的減量值(decrement)

127.0.0.1:6379[1]> get key3

"3"127.0.0.1:6379[1]> decrby key3 2

(integer) 1

(integer) 9

127.0.0.1:6379[1]> get key1

"value1aaa"

4.2 雜湊hash相關命令

redis hash 是乙個string型別的field和value的對映表,hash特別適合用於儲存物件,以使用者物件 為例,user

hmset 儲存:

127.0.0.1:6379[1]> hmset user name "lgy" age 25

okhset 修改其中乙個屬性(age)

127.0.0.1:6379[1]> hset user age 26

(integer) 0

hgetall 查詢:

127.0.0.1:6379[1]> hgetall user

1) "name"

2) "lgy"

3) "age"

4) "26"

hget 查詢其中乙個屬性(name):

127.0.0.1:6379[1]> hget user name

"lgy"

hmget 查詢多個屬性(name和age):

127.0.0.1:6379[1]> hmget user name age

1) "lgy"

2) "26"

hkeys 獲取所有屬性

127.0.0.1:6379[1]> hkeys user

1) "name"

2) "age"

hlen 獲取屬性個數

127.0.0.1:6379[1]> hlen user

(integer) 2

hincrby 給age增加3

127.0.0.1:6379[1]> hincrby user age 3

(integer) 29

給age減少3,和string不同,沒有找到減少的命令,不過可以使用增加-3來實現

hsetnx 插入不存在的屬性,如果存在不插入(name存在,***不存在)

127.0.0.1:6379[1]> hsetnx user name ligy

(integer) 0

127.0.0.1:6379[1]> hsetnx user *** man

(integer) 1

hdel 刪除乙個或多個屬性(刪除***,age)

127.0.0.1:6379[1]> hdel user *** age

(integer) 2

127.0.0.1:6379[1]> hkeys user

1) "name"

剩餘三種型別沒用過就不寫了

4.3 列表list相關命令

4.4 集合set相關命令

4.5 有序集合sorted set 相關命令

Redis命令詳解 Hashs

hash是一種string型別的field value的對映表,因此,它非常適合儲存物件。下面我們來一一介紹與hash相關的命令。hdel 最早可用版本 2.0.0 時間複雜度 o n 其中n為要刪除的field的個數 hdel命令用於刪除指定key的指定的乙個或多個field。如果指定的field...

Redis命令詳解 Hashs

hash是一種string型別的field value的對映表,因此,它非常適合儲存物件。下面我們來一一介紹與hash相關的命令。hdel 最早可用版本 2.0.0 時間複雜度 o n 其中n為要刪除的field的個數 hdel命令用於刪除指定key的指定的乙個或多個field。如果指定的field...

Redis命令詳解 HyperLogLog

hyperloglog是redis的高階資料結構,它在做基數統計的時候非常有用,每個hyperloglog的鍵可以計算接近264不同元素的基數,而大小只需要12kb。hyperloglog目前只支援3個命令,pfadd pfcount pfmerge。我們先來逐一介紹一下。pfadd 最早可用版本 ...