天天看點

Redis的String類型

下表列出了常用的 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)。

5

GETBIT key offset

對 key 所儲存的字元串值,擷取指定偏移量上的位(bit)。

6

MGET key1 [key2..]

擷取所有(一個或多個)給定 key 的值。

7

SETBIT key offset value

對 key 所儲存的字元串值,設定或清除指定偏移量上的位(bit)。

8

SETEX key seconds value

将值 value 關聯到 key ,并将 key 的過期時間設為 seconds (以秒為機關)。

9

SETNX key value

隻有在 key 不存在時設定 key 的值。

10

SETRANGE key offset value

用 value 參數覆寫給定 key 所儲存的字元串值,從偏移量 offset 開始。

11

STRLEN key

傳回 key 所儲存的字元串值的長度。

12

MSET key value [key value ...]

同時設定一個或多個 key-value 對。

13

MSETNX key value [key value ...] 

同時設定一個或多個 key-value 對,當且僅當所有給定 key 都不存在。

14

PSETEX key milliseconds value

這個指令和 SETEX 指令相似,但它以毫秒為機關設定 key 的生存時間,而不是像 SETEX 指令那樣,以秒為機關。

15

INCR key

将 key 中儲存的數字值增一。

16

INCRBY key increment

将 key 所儲存的值加上給定的增量值(increment) 。

17

INCRBYFLOAT key increment

将 key 所儲存的值加上給定的浮點增量值(increment) 。

18

DECR key

将 key 中儲存的數字值減一。

19

DECRBY key decrement

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

20

APPEND key value

如果 key 已經存在并且是一個字元串, APPEND 指令将指定的 value 追加到該 key 原來值(value)的末尾。

測試了常用的指令

說幾個String類型常用的場景

1.可以當自增主鍵,具有原子性

string在redis内部存儲預設就是一個字元串,當遇到增減類操作incr, decr時會轉成數值型進行計算。

redis所有的操作都是原子性的,采用單線程處理所有業務,指令是一個一個執行的,是以無需考慮并發帶來的資料影響。

注意: 按數值進行操作的資料,如果原始資料不能轉成數值,或超越了redis 數值上限範圍,将報錯。9223372036854775807( java中long型資料最大值, Long.MAX_VALUE)

适用:

redis用于控制資料庫表主鍵id,為資料庫表主鍵提供生成政策,保障資料庫表的主鍵唯一性

此方案适用于所有資料庫,且支援資料庫叢集

2.時效性

“最強女生”啟動海選投票,隻能通過微信投票,每個微信号每 4 小時隻能投1票。

電商商家開啟熱門商品推薦,熱門商品不能一直處于熱門期,每種商品熱門期維持3天, 3天後自動取消熱門。

如果發現存在redis中,則無法進行操作 

3.存儲資訊

Redis的String類型

在redis中為大V使用者設定使用者資訊,以使用者主鍵和屬性值作為key,背景設定定時重新整理政策即可

在redis中以json格式存儲大V使用者資訊,定時重新整理(也可以使用hash類型)

eg: user:id:3506728370 →

注:上面2種各有優缺點,第一種改的友善,第二個查的友善

redis應用于各種結構型和非結構型高熱度資料通路加速 

Redis的String類型

 4.注意事項

string 類型資料操作的注意事項

          ① 表示運作結果是否成功

              (integer) 0 → false 失敗

              (integer) 1 → true 成功

         ② 表示運作結果值

              (integer) 3 → 3 3個

              (integer) 1 → 1 1個

資料未擷取到

            ( nil)等同于null

資料最大存儲量

              512MB

數值計算最大範圍( java中的long的最大值)

              9223372036854775807

繼續閱讀