redis型別之字串

2021-10-22 18:43:20 字數 3293 閱讀 7115

字串string

127.0.0.1:6379> exists name   判斷key存在

(integer) 1

(integer) 10 字串長度10

127.0.0.1:6379> get name 獲取key

"luhanhello"

127.0.0.1:6379> strlen name

(integer) 10

(integer) 14

127.0.0.1:6379> strlen name strlen命令獲取去字串的長度

(integer) 14

127.0.0.1:6379> get name

"luhanhelloword"

127.0.0.1:6379>

127.0.0.1:6379> set liuliang 0  設定初始流量為0

ok127.0.0.1:6379> get liuliang

"0"127.0.0.1:6379> incr liuliang 自加1

(integer) 1

127.0.0.1:6379> get liuliang 獲取

"1"127.0.0.1:6379> incr liuliang 自加1

(integer) 2

127.0.0.1:6379> get liuliang

"2"127.0.0.1:6379> decr liuliang 自減1

(integer) 1

127.0.0.1:6379> get liuliang 獲取

"1"127.0.0.1:6379> decr liuliang 減1

(integer) 0

127.0.0.1:6379> get liuliang

"0"設定步長

127.0.0.1:6379> incrby liuliang 4 自加4 設定步長,指定增量為4

(integer) 4

127.0.0.1:6379> incrby liuliang 4 自加4

(integer) 8

127.0.0.1:6379> get liuliang

"8"127.0.0.1:6379> decrby liuliang 4 自減4

(integer) 4

127.0.0.1:6379> get liuliang

"4"

獲取、更改指定字串

127.0.0.1:6379> set name luhan.hello,word

ok127.0.0.1:6379> get name

"luhan.hello,word"

127.0.0.1:6379> getrange name 0 5 表示獲取0-5之間的字串

"luhan."

127.0.0.1:6379> getrange name 0 -1 -1表示獲取整個字串

"luhan.hello,word"

更改替換

127.0.0.1:6379> get name

"luhan.hello,word"

127.0.0.1:6379> setrange name 0 wc 更改第0個字串即第乙個l為wc

(integer) 16

127.0.0.1:6379> get name

"wchan.hello,word"

setex=設定過時間 setnx=不存在再去設定,存在不設定(分布式鎖中會使用)

127.0.0.1:6379> setex name1 20 hello 設定過期時間20s,到時間會自動清除

ok127.0.0.1:6379> ttl name1

(integer) 16

127.0.0.1:6379> get name1

"hello"

127.0.0.1:6379> setnx name2 redis 建立key

(integer) 1

127.0.0.1:6379> keys *

1)"name2"

127.0.0.1:6379> setnx name2 westos 再次建立相同的key

(integer) 0 返回0表示失敗,因為已經存在

127.0.0.1:6379> get name2

"redis"

知識點補充:

expire針對於已存在的key設定過期時間

setex在建立key的時候設定過期時間

setnx表示在建立新的key的時候會自動判斷key是否存在,不存在就建立,存在無法建立

批量操作

127.0.0.1:6379> flushall

ok127.0.0.1:6379> mset name1 hello1 name2 hello2 name3 hello3 批量建立

ok127.0.0.1:6379> mget name1 name2 name3 批量獲取

1)"hello1"

2)"hello2"

3)"hello3"

127.0.0.1:6379> msetnx name2 hello2 name4 hello4 msetnx批量插入並且判斷key是否存在,若其中有乙個存在則全部失敗

(integer) 0

物件127.0.0.1:6379> mset user:1:name luhan user:1:age 22 這裡的key是乙個物件(user:1:name)

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

1)"luhan"

2)"22"

getset命令:先獲取在建立 --> 可以用來更新資料

127.0.0.1:6379> flushall

ok127.0.0.1:6379> keys *

(empty list or set

)127.0.0.1:6379> getset name helloo 沒有就建立

(nil)

127.0.0.1:6379> get name

"helloo"

127.0.0.1:6379> getset name word 存在就返回,然後在更改

"helloo"

127.0.0.1:6379> get name

"word"

Redis之字串型別

重新定義了c語言中的字串 字串的實現 在sds.件中。在redis3.2之前的版本中,是如下儲存字串的 型別別名,用於指向 sdshdr 的 buf 屬性 typedef char sds 儲存字串物件的結構 struct sdshdr 示意圖 而在新版本中redis是如下儲存的。redis官網gi...

Redis之String 字串型別

字串型別是redis中最為基礎的資料儲存型別,它在redis中是二進位制安全的,這便意味著該型別可以接受任何格式的資料,如jpeg影象資料或json物件描述資訊等。在redis中字串型別的value最多可以容納的資料長度是512m。命令原型 時間複雜度 命令描述 返回值o 1 追加後value的長度...

Redis快速入門之字串型別

字串型別是redis中最基本的資料型別,他能儲存任何形式的字串,包括二進位制資料,你可以用它來儲存使用者的郵箱,json化的字串,設定是二進位制物件。乙個字串型別允許儲存的大小為512mset keyvalue getkey incr key當操作的鍵值不存在是預設的值為0,因此遞增之後的值為1 當...