下表列出了常用的 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.存儲資訊
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SMzYzMyUzNyQ2NhlTO4YjMmFWNjVGM0UGZ5UjY4QzN58CX2AzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL4M3Lc9CX6MHc0RHaiojIsJye.png)
在redis中為大V使用者設定使用者資訊,以使用者主鍵和屬性值作為key,背景設定定時重新整理政策即可
在redis中以json格式存儲大V使用者資訊,定時重新整理(也可以使用hash類型)
eg: user:id:3506728370 →
注:上面2種各有優缺點,第一種改的友善,第二個查的友善
redis應用于各種結構型和非結構型高熱度資料通路加速
4.注意事項
string 類型資料操作的注意事項
① 表示運作結果是否成功
(integer) 0 → false 失敗
(integer) 1 → true 成功
② 表示運作結果值
(integer) 3 → 3 3個
(integer) 1 → 1 1個
資料未擷取到
( nil)等同于null
資料最大存儲量
512MB
數值計算最大範圍( java中的long的最大值)
9223372036854775807