redis 基礎與字串型別

2021-09-02 23:29:44 字數 1427 閱讀 5442

全域性命令

redis是單執行緒架構

資料型別

set

keyvalue

[ex seconds]

[px milliseconds]

[nx|xx]

ex seconds:表示級過期時間

px milliseconds:表示毫秒級過期時間

nx:表示鍵必須不存在,才能新增成功,用於新增乙個新鍵,合成簡寫命令 setnx,

根據setnx的特性只有乙個客戶端能設定成功,setnx可以作為分布式鎖的一種實現方案,redis官方給出了使用setnx實現分布式鎖的方法:

xx:與nx相反,鍵必須存在,才能新增成功,用於修改乙個鍵,合成簡寫命令 setxx

get key,如果鍵不存在,則返回nil(空)

命名注意事項:redis沒有命名空間,合理的鍵命名有利於防止鍵衝突和專案的維護,比較推薦的方式是使用「 業務名:物件名:id:[屬性] 」 作為鍵名(也可以不是:)。如果鍵名過長可以採用縮寫,避免鍵過長浪費記憶體

使用場景:快取

計數

long

incrvideocounter

(long id)

真實的計數系統要考慮的問題很多,如:防作弊,多維度統計,資料持久的底層資料來源等

發簡訊限速偽**如下

phonenum =

"138******xx"

;key =

"shortmsg:limit:"

+ phonenum;

// set key value ex 60 nx

i***ists = redis.

set(key,1,

"ex 60"

,"nx");

if(i***ists != null || redis.

incr

(key)

<=5)

else

分布式系統會導致session 分散到不同的伺服器上,負載均衡會導致出現使用者重新整理一次就要重新登入的情況

使用redis統一管理session 即可解決上述問題,如下圖所示:

Redis 字串型別基礎命令了解與實踐

set key value get key 當要get的key不存在時,會返回空結果 操作示例 incr key 原子操作,當要操作的鍵不存在時,預設鍵值為0,然後每次遞增1,返回遞增後的結果,當鍵值不是整數時,redis會提示錯誤 操作示例 decr key 原子操作,可以模擬incr key,只...

基礎 字串型別

github mysql 中提供多種字串儲存型別,分別為 char,varchar,binary,varbinary,blob,text,enum 和 set 等等型別。咱們主要選擇最常用的分析。對於 char 和 varchar 型別,mysql 與 oracle 同樣是用於儲存字串,但是設計邏輯...

redis中字串型別

字串型別是redis中最基本的資料型別,它能儲存任何形式的字串,包括二進位制資料。你可以用其儲存使用者的手機號,郵箱,json化後的物件甚至是。在ifuchuan型別中鍵允許儲存的資料的最大容量是512mb。字串型別是其它4種資料型別的基礎,其他資料型別和字串型別的差別從某種角度來說只是組織字串的形...