redis 字串命令

2022-06-21 03:54:15 字數 3284 閱讀 7589

所有的key 為string 型別的key 及其value 進行操作

set  key value                  #不存在就建立/存在就更改。在 redis 2.6.12 以前版本, set 命令總是返回 ok 。從 redis 2.6.12 版本開始,set在設定操作成功完成時,才返回 ok 。

get key                       #redis get 命令用於獲取指定 key 的值。如果 key 不存在,返回 nil 。如果key 儲存的值不是字串型別,返回乙個錯誤。

getrange                       #命令用於獲取儲存在指定 key 中字串的子字串。字串的擷取範圍由 start 和 end 兩個偏移量決定(包括 start 和 end 在    內)

redis 127.0.0.1:6379> set mykey "

this is my test key"ok

redis 127.0.0.1:6379> getrange mykey 0 3

"this

"redis 127.0.0.1:6379> getrange mykey 0 -1

"this is my test key

"

view code

getset key value                 #將給定 key 的值設為 value ,並返回 key 的舊值(old value)

setbit key  offset 0/1

get key  offset                  # 對不存在的 key 或者不存在的 offset 進行 getbit, 返回 0,

對已存在的 offset 進行 getbit是0返回0是1返回1。

解析如下:

而用redis的getbit和setbit則會簡單得多。

1value就是乙個bitmap。一位(bit)有兩種可能,0或者1。0代表未看,1代表已經看過了。設定1

234# setbit key offset value 查詢

123# getbit key offset

另外文章中也將到目前非常流行的打卡或者是登陸記錄也可以用相似的設計實現。

例如用乙個bitmap記錄所有使用者的登陸情況,bitmap中的一位代表乙個使用者當天是否有登陸,0代表沒登陸,1代表有登陸。

每天生成乙個bitmap。

通過統計多天bitmap就可以實現統計活躍使用者之類的操作了。

view code

mget   key1[key2...]               #獲取所有(乙個或多個)給定 key 的值。

setex  key  seconds  value              #命令為指定的 key 設定值及其過期時間。如果 key 已經存在, setex 命令將會替換舊的值。

setnx(setifnot exists)            #命令在指定的 key 不存在時,為 key 設定指定的值。成功返回1,失敗返回0。只有不存在才能成功

setrange key_name offset value         #命令用指定的字串覆蓋給定 key 所儲存的字串值,覆蓋的位置從偏移量 offset 開始。

可用版本

>=

2.2.0

返回值被修改後的字串長度。

例項redis

127.0.0.1:6379

>

setkey1 "hello world"

okredis

127.0.0.1:6379

> setrange key1 6

"redis"

(integer) 11

redis

127.0.0.1:6379

>

get key1

"hello redis"

view code

strlen  key_name                 #返回key儲存的字串的長度,字串值的長度。 當 key 不存在時,返回 0。

mset  key1 value1 key2 value2 ..keyn valuen

#同時設定多個key value  ,總是返回ok

mysetnx  key1 value1 key2 value2 ..keyn valuen

#用於所有給定 key 都不存在時,同時設定乙個或多個 key-value 對。當所有 key 都成功設定,返回 1 。 如果所有給定 key 都設定失敗(至少有乙個 key 已經存在),那麼返回 0 。

psetex key1 seconds_in_ms  value1        #和 setex 命令相似,但它以毫秒為單位設定 key 的生存時間,而不是像 setex 命令那樣,以秒為單位。成功返回ok

incr                      # 命令將 key 中儲存的數字值增一。如果 key 不存在,那麼 key 的值會先被初始化為 0 ,然後再執行 incr 操作。如果值     包含錯誤的型別,或字串型別的值不能表示為數字,那麼返回乙個錯誤。

本操作的值限制在 64 位(bit)有符號數字表示之內。

語法

redis incr 命令基本語法如下:

redis

127.0.0.1:6379

>

incr key_name

可用版本

>=

1.0.0

返回值執行 incr 命令之後

key的值。

例項redis

>

set page_view 20

okredis

>

incr page_view

(integer) 21

redis

>

get page_view # 數字值在 redis 中以字串的形式儲存

"21"

view code

incrby  key increament             #對key 儲存的數字值增加給定的增量,其他同incr

incrbyfloat key_name  incr_amount         #對key 儲存的數字值增加給定的浮點數增量,其他同incr

decr                     #對key 儲存的數字減一,其他同incr

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

Redis 字串命令

字串操作命令 設定key value 如果存在key相同的value則會替換 set key value 獲取key value 如果獲取的key不存在 則返回none nil get key 刪除key value 刪除成功返回 1 刪除失敗或者鍵不存在返回 0 del key 無論key是否存在...

總結Redis 字串命令

1 set key value 設定指定 key 的值 2 get key 獲取指定 key 的值。3 getrange key start end 返回 key 中字串值的子字元 4 getset key value 將給定 key 的值設為 value 並返回 key 的舊值 old value...

redis 筆記 字串命令

set key value 設定指定key的值 get key 獲取key的值 getrange key start end 返回 key 中字串值的子字元 索引從0開始 getset key value 修改key的值為value 並返回舊值 setex key seconds value 設定 ...