欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

redis string實現(xiàn)共享會話和手機驗證碼應(yīng)用場景

 更新時間:2025年11月05日 10:47:12   作者:椰椰椰耶  
本文主要介紹了redis string實現(xiàn)共享會話和手機驗證碼應(yīng)用場景,一種是使用Redis集中管理會話信息,解決不同應(yīng)用服務(wù)器間會話共享問題;另一種是實現(xiàn)手機驗證碼功能,包括生成、驗證驗證碼的過程,感興趣的可以了解一下

共享會話

實現(xiàn)思路

如果每個應(yīng)用服務(wù)器,維護自己的會話數(shù)據(jù),此時彼此之間胡共享,用戶請求訪問到不同的服務(wù)器上,就可能會出現(xiàn)一些不能正確處理的情況了

為了解決這個問題,可以使用 Redis 將用戶的 Session 信息進行幾種管理,在這種模式下,只要保證 Redis 是最高可用和可擴展性的,無論用戶被均衡到哪臺 Web 服務(wù)器上,都集中從 Redis 中查詢、更新 Session 信息!

手機驗證碼

實現(xiàn)思路

  1. 生成驗證碼

    • 用戶輸入手機號
    • 點擊獲取驗證碼(限制:1min 之內(nèi),最多獲取 5 次)
  2. 檢查驗證碼

    • 把短信收到的驗證碼這一串?dāng)?shù),提交到系統(tǒng)中,驗證是否正確

偽代碼實現(xiàn)

生成驗證碼

String 發(fā)送驗證碼(phoneNumber) {
	key = "shortMsg:limit:" + phoneNumber;
	// 設(shè)置過期時間為 1 min
	//使用 NX,只在不存在 key 時才能設(shè)置成功
	bool r = Redis 執(zhí)行命令: set key 1 ex 60 nx
	if (r == false) {
		// 說明之前設(shè)置過該手機的驗證碼了
		long c = Redis 執(zhí)行命令: incr key
		if (c > 5) {
			// 說明超過一分鐘 5 次的限制了
			// 限制發(fā)送
			return null;
		}
	}
	
	// 說明要么之前沒有設(shè)置過手機驗證碼;要么次數(shù)沒有超過 5 次
	String validationCode = 生成隨機的 6 位數(shù)的驗證碼();
	
	validationKey = "validation:" + phoneNumber;
	// 驗證碼 5 分鐘內(nèi)有效
	Redis 執(zhí)行命令: set validationKey validationCode ex 300;
	
	// 返回驗證碼
	return vaildation;
}


驗證驗證碼

// 驗證用戶輸入的驗證碼是否正確
bool 驗證驗證碼(phoneNumber, vaildation) {
	vaildationKey = "vaildation:" + phoneNumber;
	
	String value = Redis 執(zhí)行命令: get vaildationKey;
	if (value == null) {
		// 說明沒有這個手機驗證碼記錄,驗證失敗
		return false;
	}
	
	if (value == vaildationCode) {
		retrurn true;
	} else {
		return false;
	}
}

像發(fā)送短信這樣的操作,都是有專門的 SDK 來實現(xiàn)的(第三方提供的短信平臺服務(wù))(充值)

到此這篇關(guān)于redis string實現(xiàn)共享會話和手機驗證碼應(yīng)用場景的文章就介紹到這了,更多相關(guān)redis string共享會話和手機驗證碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Redis請求處理的流程分析

    Redis請求處理的流程分析

    這篇文章主要介紹了Redis?是如何進行請求處理,這篇文章介紹了整個?Redis?的請求處理模型到底是怎樣的。從注冊監(jiān)聽?fd?事件到執(zhí)行命令,到最后將數(shù)據(jù)回寫給客戶端都做了個大概的分析,需要的朋友可以參考下
    2022-07-07
  • redis-cli 使用密碼登錄的實例

    redis-cli 使用密碼登錄的實例

    今天小編就為大家分享一篇redis-cli 使用密碼登錄的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • redis集群搭建過程(非常詳細(xì),適合新手)

    redis集群搭建過程(非常詳細(xì),適合新手)

    這篇文章主要介紹了redis集群搭建過程,Redis集群至少需要3個節(jié)點,因為投票容錯機制要求超過半數(shù)節(jié)點認(rèn)為某個節(jié)點掛了該節(jié)點才是掛了,所以2個節(jié)點無法構(gòu)成集群,具體搭建過程跟隨小編一起看看吧
    2021-11-11
  • Redisson分布式鎖之加解鎖詳解

    Redisson分布式鎖之加解鎖詳解

    這篇文章主要為大家介紹了Redisson分布式鎖加解鎖的詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • Django使用redis配置緩存的方法

    Django使用redis配置緩存的方法

    Redis是一個內(nèi)存數(shù)據(jù)庫由于其性能極高,因此經(jīng)常作為中間件、緩存使用,緩存某些內(nèi)容是為了保存昂貴計算的結(jié)果,這樣就不必在下次執(zhí)行計算,接下來通過本文給大家分享redis配置緩存的方法,感興趣的朋友一起看看吧
    2021-06-06
  • redis分布式鎖解決緩存雙寫一致性

    redis分布式鎖解決緩存雙寫一致性

    這篇文章主要為大家介紹了redis分布式鎖解決緩存雙寫一致性示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • Redis分布式鎖方案設(shè)計之防止訂單重復(fù)提交或支付

    Redis分布式鎖方案設(shè)計之防止訂單重復(fù)提交或支付

    這篇文章主要為大家介紹了Redis分布式鎖之防止訂單重復(fù)提交或支付方案設(shè)計示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • Centos7 Redis主從搭建配置的實現(xiàn)

    Centos7 Redis主從搭建配置的實現(xiàn)

    這篇文章主要介紹了Centos7 Redis主從搭建配置的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • Spring Boot整合Redis實現(xiàn)訂單超時處理問題

    Spring Boot整合Redis實現(xiàn)訂單超時處理問題

    這篇文章主要介紹了Spring Boot整合Redis實現(xiàn)訂單超時處理,通過這個基本的示例,你可以了解如何使用Spring Boot和Redis來處理訂單超時問題,并根據(jù)需要進行擴展和定制,需要的朋友可以參考下
    2023-11-11
  • redis性能優(yōu)化之生產(chǎn)中實際遇到的問題及排查總結(jié)

    redis性能優(yōu)化之生產(chǎn)中實際遇到的問題及排查總結(jié)

    這篇文章主要介紹了redis性能優(yōu)化之生產(chǎn)中實際遇到的問題及排查總結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12

最新評論