05 redis五大型別string

2021-10-10 03:03:38 字數 3676 閱讀 1874

string型別(字串)

127.0.0.1:6379>

set key1 v1 #設定值

ok127.0.0.1:6379> get key1 #取值

"v1"

127.0.0.1:6379> keys * #檢視所有值

1)"key1"

127.0.0.1:6379> exists key1 #key是否存在

(integer) 1

#追加值

(integer) 7

127.0.0.1:6379> get key1

"v1hello"

127.0.0.1:6379> strlen key1 #獲取字串的長度

(integer) 7

(integer) 16

127.0.0.1:6379> get key1

"v1hello ,bowenxu"

(integer) 7

127.0.0.1:6379> get key2

"bowenxu"

自增自減

127.0.0.1:6379>

set views 0

ok127.0.0.1:6379> get views

"0"127.0.0.1:6379> incr views #自增1

(integer) 1

127.0.0.1:6379> incr views

(integer) 2

127.0.0.1:6379> get views

"2"127.0.0.1:6379> decr views #自減1

(integer) 1

127.0.0.1:6379> decr views

(integer) 0

127.0.0.1:6379> decr views

(integer) -1

127.0.0.1:6379> get views

"-1"

127.0.0.1:6379> incrby views 10 #自增可以設定步長

(integer) 9

127.0.0.1:6379> incrby views 10

(integer) 19

127.0.0.1:6379> decrby views 5 #自減可以設定步長

(integer) 14

127.0.0.1:6379> decrby views 5

(integer) 9

127.0.0.1:6379>

擷取字串

127.0.0.1:6379> flushdb

ok127.0.0.1:6379> keys *

(empty array)

127.0.0.1:6379>

set key1 "hello bowenxu"

ok127.0.0.1:6379> get key1

"hello bowenxu"

127.0.0.1:6379> getrange key1 0 3 #擷取字串[0,3]

"hell"

127.0.0.1:6379> getrange key1 0 -1 #獲取全部字串==get

"hello bowenxu"

127.0.0.1:6379>

"hello bowenxu"

127.0.0.1:6379>

set key2 abcdefg

ok127.0.0.1:6379> get key2

"abcdefg"

127.0.0.1:6379> setrange key2 1 xx #替換指定字元

(integer) 7

127.0.0.1:6379> get key2

"axxdefg"

127.0.0.1:6379>

########################################

setex (set with expire)

#設定過期時間

setnx (set if not exist)

#如果不存在這個key,那麼建立,分布式鎖中常用

########################################

127.0.0.1:6379> setex key3 hello

(error) err wrong number of arguments for

'setex'

command

127.0.0.1:6379> setex key3 30 hello

ok127.0.0.1:6379> setnx mykey "redis"

(integer) 1

127.0.0.1:6379> keys *

1)"key2"

2)"key1"

3)"key3"

4)"mykey"

127.0.0.1:6379> setnx mykey "mongodb"

(integer) 0

127.0.0.1:6379>

########################################

mset

setnx (set if not exist)

#如果不存在這個key,那麼建立,分布式鎖中常用

#set多個值

127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3

ok127.0.0.1:6379> keys *

1)"key2"

2)"k1"

3)"k3"

4)"key1"

5)"k2"

6)"mykey"

#get多個值

127.0.0.1:6379> 127.0.0.1:6379> mget k1 k2 k3

1)"v1"

2)"v2"

3)"v3"

#原子式操作

127.0.0.1:6379> msetnx k1 v222 k4 v444

(integer) 0

#物件#設定乙個user:1 物件,用json字串來儲存乙個物件

set user:1

#巧妙設計 user:: ,如此設計非常巧妙,在redis中是完全ok的

127.0.0.1:6379> mset user:1:name bowenxu user:1:age 35

ok127.0.0.1:6379> mget user:1:name user:1:age

1)"bowenxu"

2)"35"

########################################

#先get再set

127.0.0.1:6379> getset db redis #如果不存在,返回nil

(nil)

127.0.0.1:6379> get db

"redis"

127.0.0.1:6379> getset db mogodb #如果存在,獲取原來的值,並設定新的值

"redis"

127.0.0.1:6379> get db

"mogodb"

127.0.0.1:6379>

資料結構是相同的

string 場景 value除了是字串,還可以是數字

redis五大型別以及相關命令

連線雲伺服器後,輸入命令redis cli進入redis.string set u 5333 將字串u設定為5333 getrange u 0 1 獲取儲存在keyu中全部字串 incr u 將u增1 decr u 將u減1 incrby u 3 將u增加3 decrby u 3 將u減去3 inc...

Redis五大型別之String操作

檢視和連線redis命令列 redis cli help 檢視所有string型別的操作 help stringstring型別分為三種 1.string 2.number 3.bit 應用場景 秒殺 incr 分布式鎖setnx 一 string 型別 1 插入資料 set k1 aa 2 如果k...

06 redis 五大型別 list

list 基本資料型別,列表 在redis裡面,可以把list玩成 堆,棧 3 基本命令 127.0.0.1 6379 lpush list one 把乙個值,放在列表的頭部 l integer 1 127.0.0.1 6379 lpush list two integer 2 127.0.0.1 ...