Redis實現分布式單點登入

2022-07-07 16:30:19 字數 577 閱讀 2691

單點登入(single sign on),簡稱為 sso,是目前比較流行的企業業務整合的解決方案之一。sso的定義是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。

引進sso單點登入的邏輯,它完美的解決了在多服務下的session共享問題,但是又會帶來哪些問題呢?

在高併發下,很難保證生成的token的唯一性,並且有可能存在cookie儲存的token資訊,在redis 中查詢不到,

於是在這種情況下就需要使用分布式鎖!分布式鎖有很多實現方式, 利用redis 中的setnx 和get set命令來實現redis 分布式鎖!

setnx命令簡介

命令格式

setnx key value

將 key 的值設為 value ,當且僅當 key 不存在。

若給定的 key 已經存在,則 setnx 不做任何動作。

setnx 是『set if not exists』(如果不存在,則 set)的簡寫。

返回值設定成功,返回 1 。

設定失敗,返回 0 。

單點登陸工作原理解析

redis實現SSO單點登入,集群,分布式鎖

使用redis實現單點登入,一般情況下都是配合cookie的.將生成的唯一的token資訊儲存在cookie中,當發生多服務呼叫時,都會在cookie中讀取到該值,再去redis中查詢是否有該使用者資訊存在.如此實現單點登陸 一般在微服務架構中,sso單點登陸會抽離出來作為乙個單獨的服務,來實現伺服...

分布式系列 單點登入和session共享

最近跟組織一起學習,本來說好的學習大資料,不知道怎麼的,忽然一看材料,莫名轉戰到了分布式,搞起了高階架構的知識了。看了看故事的梗概,還不錯,從基礎的分布式呼叫和架構設計,再到事務一致性,ha,到web應用,資料庫高可用和效能優化等一系列,也算是有乙個很不錯的體系,就計畫堅持著學下去了。好了,囉嗦的夠...

redis實現分布式鎖

隨便 系統越來越大,各功能模組除了垂直切割以外,同時也得做集群處理,那麼問題來了,在多執行緒情況下對於資源的競爭就需要乙個統一的訪問限制。以選課系統為例子,集群中各節點對課程可選數量同時操作,這裡就需要同步了,否則會導致最後選到的數量比可選的數量大,這裡我們的分布式鎖就派上用場了。利用redis來實...