注冊登錄是日常開發必備的一個功能,而且其在整個體系中的重要性也非常大,作為用戶身份標記的第一道門檻,必須慎之又慎。
今天我們來聊一個redis的妙用,在注冊和登錄功能上,非常的方便和實用。
我們都知道redis作為一個高性能的 key-value 數據庫,其中有一個PEXPIRE的命令,他的功能是:
Redis Expire 命令用于設置 key 的過期時間,key 過期后將不再可用。單位以秒計。
這個特性,用在短信或者郵件驗證碼的驗證環節,非常的妙,以前傳統時期,大家一般的操作手法,可能就是把驗證碼加密緩存到用戶本地,或者session存儲之后,外加一個過期期限。這樣的話,一方面會增加系統的IO資源,另外對于日后的日志排查和維護上增加一些麻煩,也有些同學將這些請求記錄,保存到數據庫中,每次驗證判斷,都進行一次數據庫連接來請求,遇上有些爆破行為,可能把整個數據庫給拖垮了。
用上redis之后,將每次的手機號和驗證碼存入redis當中,并設置一個過期時間,只要有效期內這個值還存在,那就是可以認證放行的,到期后,這個值就自動刪除了。即使遇上有些bug導致接口被爆破請求,也跟數據庫分離開,不至于拖垮整個數據庫。