值最大不能超過512MB
設置值
setex和setnx
set key value [ex 秒] [px 毫秒] [nx|xx]
- nx:鍵必須不存在,才可以設置成功,用于添加
- xx:鍵必須存在,才可以設置成功
獲取值
get key
- 鍵不存在返回nil
批量設置值
mset key value [key value ...]
批量獲取值
mget key [key ....]
計數
incr key
incr命令用于對值做自增操作,返回結果分為三種情況:
·值不是整數,返回錯誤。
·值是整數,返回自增后的結果。
·鍵不存在,按照值為0自增,返回結果為1。除了incr命令,Redis提供了decr(自減)、incrby(自增指定數字)、
decrby(自減指定數字)、incrbyfloat(自增浮點數):decr key
incrby key increment
decrby key decrement
incrbyfloat key increment
追加值
append key value
字符串長度
strlen key
設置并返回值
getset key value
127.0.0.1:6379> getset hello world
(nil)
127.0.0.1:6379> getset hello redis
"world"
設置指定位置字符
setrange key offeset value
127.0.0.1:6379> set redis pest
OK
127.0.0.1:6379> setrange redis 0 b
(integer) 4
127.0.0.1:6379> get redis
"best"
獲取指定位置字符
getrange key start end
start和end分別是開始和結束的偏移量,偏移量從0開始計算
內部編碼
字符串類型的內部編碼有3種:
·int:8個字節的長整型。
·embstr:小于等于39個字節的字符串。
·raw:大于39個字節的字符串。
Redis會根據當前值的類型和長度決定使用哪種內部編碼實現。
使用場景
限速:
手機短信驗證,比如一分鐘不能超過5次
一些網站限制一個IP地址不能在一秒鐘之內訪問超過n次2.共享session
一個分布式Web服務將用戶的Session信息保存在各自服務器中,這樣會造成一個問題,出于負載均衡的考
慮,分布式服務會將用戶的訪問均衡到不同服務器上,用戶刷新一次訪問可
能會發現需要重新登錄---可以使用Redis將用戶的Session進行集中管理
3.計數注意:
設計合理的鍵名,有利于防止鍵沖突和項目的可維護性,比較推薦的方式是使用“業務名:對象名:id:[屬性]”作為鍵名。在能描述鍵含義的前提下適當減少鍵的長度,從而減少由于鍵過長的內存浪費。