Redis個人學習筆記3 五大資料型別之字串

2021-10-09 07:03:27 字數 3462 閱讀 5857

根據b站up主狂神說redis課程所寫的個人學習筆記

redis-key

127.0.0.1:6379> keys *      #檢視所有的key

(empty array)

127.0.0.1:6379> set name lin    #set key

ok127.0.0.1:6379> keys *

1) "name"

127.0.0.1:6379> set age 1

ok127.0.0.1:6379> keys *

1) "name"

2) "age"

127.0.0.1:6379> exists name      #判斷當前的key是否存在

(integer) 1

127.0.0.1:6379> exists name1    

(integer) 0 

127.0.0.1:6379> move name 1    #移除當前的key

(integer) 1

127.0.0.1:6379> keys *         

1) "age"

127.0.0.1:6379> set name lin

ok127.0.0.1:6379> keys *

1) "name"

2) "age"

127.0.0.1:6379> clear

127.0.0.1:6379> expire name 10         #設定key的過期時間,單位s

(integer) 1

127.0.0.1:6379> ttl name   #檢視剩餘時間

(integer) 4

127.0.0.1:6379> get name

(nil)

127.0.0.1:6379> type age #檢視key的型別

string

可在官網進行命令的查詢

string

實現i++操作

步長127.0.0.1:6379> set views 0  #初始瀏覽量為0

ok127.0.0.1:6379> get views

"0"127.0.0.1:6379> incr views  #自增1,瀏覽量變為1

(integer) 1

127.0.0.1:6379> get views

"1"127.0.0.1:6379> decr views #自減1 瀏覽量-1

(integer) 0

127.0.0.1:6379> get views

"0"127.0.0.1:6379> incrby views 10 #可以指定增量

(integer) 10

127.0.0.1:6379> decrby views 5

(integer) 5

字串範圍range

127.0.0.1:6379> set key1 "hello,lin"    #設定key1的值

ok127.0.0.1:6379> get key1   #獲取key1的值

"hello,lin"

127.0.0.1:6379> getrange key1 0 3     #獲取key1[0:3]

"hell"

127.0.0.1:6379> getrange key1 0 -1   #獲取key1[0:-1],即全部字串

"hello,lin"

替換字串

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  #用setrange將key2[1]換成xx

(integer) 7

127.0.0.1:6379> get key2

"axxdefg"

setex:設定過期時間

setnx:不存在再設定(在分布式鎖中會常常使用)

127.0.0.1:6379> setex key3 30 "hello"  #設定key3為hello,30s後過期

ok127.0.0.1:6379> ttl key3

(integer) 24

127.0.0.1:6379> get key3

"hello"

127.0.0.1:6379> setnx mykey "redis"  #如果mykey不存在,建立mykey

(integer) 1

127.0.0.1:6379> keys *

1) "mykey"

2) "key2"

3) "key1"

127.0.0.1:6379> ttl key3

(integer) -2

127.0.0.1:6379> setnx mykey "mongodb" #如果mykey存在,建立失敗

(integer) 0

127.0.0.1:6379> get mykey

"redis"

mset

mget

127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3  #同時設定多個值

ok127.0.0.1:6379> keys *

1) "k1"

2) "k3"

3) "k2"

127.0.0.1:6379> mget k1 k2 k3   #同時獲取多個值

1) "v1"

2) "v2"

3) "v3"

127.0.0.1:6379> msetnx k1 v1 k4 v4   #msetnx是乙個原子性操作,要麼一起成功,要麼一起失敗

(integer) 0

127.0.0.1:6379> get k4

(nil)

物件127.0.0.1:6379> mset user:1:name zhangsan user:1:age 2 #設定user1的name和age

ok127.0.0.1:6379> mget user:1:name user:1:age  #獲取user1的name和age

1) "zhangsan"

2) "2"

getset:先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 mongodb  #如果存在值返回原來的值,並設定新的值

"redis"

127.0.0.1:6379> get db

"mongodb" 

string型別使用場景:value除了是我們的字串還可以是數字

*計數器

*統計多單位數量 

*粉絲數

*物件快取儲存

Redis個人學習筆記3 五大資料型別之集合

根據b站up主狂神說redis課程所寫的個人學習筆記 set中的值是不能重複的 127.0.0.1 6379 sadd myset hello set集合中新增元素 integer 1 127.0.0.1 6379 sadd myset lin integer 1 127.0.0.1 6379 sa...

redis學習 五大資料型別 List

新增127.0.0.1 6379 lpush list one 將一或多值,加到list頭部 左邊 integer 1 127.0.0.1 6379 lpush list two integer 2 127.0.0.1 6379 lpush list three integer 3 127.0.0....

redis五大資料型別

redis支援五種資料型別 string 字串 hash 雜湊 list 列表 set 集合 及zset sorted set 有序集合 127.0 0.1 6379 set name yzl ok127.0 0.1 6379 get name yzl 127.0 0.1 6379 hmset my...