redis單點登入
最近用redis+springboot做乙個sso單點登入系統,總結一下。
為滿足多個子系統的統一登入認證管理。
使用者sso模組登入,先驗證你的使用者名稱和密碼是否正確,如果正確。
會產生乙個唯一票據,我們這裡叫他useraccesstoken,把這個useraccesstoken放到redis中,存放方式是如下。
處理流程
#登入,如果已經登入,直接返回,否則執行登入
stringredistemplate.opsforvalue().set(username, useraccesstoken,3600*24*31, timeunit.seconds);
#授權認證,單獨認證是否登入。
stringredistemplate.opsforvalue().get(username);
#退出登入,先檢查,在刪除。
stringredistemplate.haskey(username);
stringredistemplate.delete(username);
#向redis裡存入資料和設定快取時間
stringredistemplate.opsforvalue().set("username", "100",60*10,timeunit.seconds);
# val做-1操作
stringredistemplate.boundvalueops("username").increment(-1);
#根據key獲取快取中的val
stringredistemplate.opsforvalue().get("username")
#val +1
stringredistemplate.boundvalueops("username").increment(1);
#根據key獲取過期時間
stringredistemplate.getexpire("username");
#根據key獲取過期時間並換算成指定單位
stringredistemplate.getexpire("username",timeunit.seconds);
#根據key刪除快取
stringredistemplate.delete("username");
#檢查key是否存在,返回boolean值
stringredistemplate.haskey("username");
#向指定key中存放set集合
stringredistemplate.opsforset().add("username", "1","2","3");
#設定過期時間
stringredistemplate.expire("username",1000 , timeunit.milliseconds);
#根據key檢視集合中是否存在指定資料
stringredistemplate.opsforset().ismember("username", "1")
#根據key獲取set集合
stringredistemplate.opsforset().members("username");
redis優點特點:
(1)速度快,因為資料存在記憶體中。
(2)支援豐富資料型別,支援string,list,set,sorted set,hash。
(3)支援事務,操作都是原子性,所謂的原子性就是對資料的更改要麼全部執行,要麼全部不執行。
(4) 豐富的特性:可用於快取,訊息,按key設定過期時間,過期後將會自動刪除。
(5)redis是單程序單執行緒:redis利用佇列技術將併發訪問變為序列訪問,消除了傳統資料庫序列控制的開銷。
redis的**策略:
volatile-lru:從已設定過期時間的資料集(server.db[i].expires)中挑選最近最少使用的資料淘汰。
volatile-ttl:從已設定過期時間的資料集(server.db[i].expires)中挑選將要過期的資料淘汰。
volatile-random:從已設定過期時間的資料集(server.db[i].expires)中任意選擇資料淘汰。
allkeys-lru:從資料集(server.db[i].dict)中挑選最近最少使用的資料淘汰。
allkeys-random:從資料集(server.db[i].dict)中任意選擇資料淘汰。
no-enviction(驅逐):禁止驅逐資料。
單點登入總結
單點登入 sso,single sign on 是一種方便使用者訪問多個系統的技術,使用者只需在登入時進行一次註冊,就可以在多個系統間自由穿梭,不必重複輸入使用者名稱和密碼來確定身份。所謂單點登入,也可以理解為共享乙個登入介面。就是說只要在這個登入介面儲存使用者資訊到cookie,其他子站訪問這個跳...
單點登入一
我們的專案中使用的版本是3.5.1的 因為已經發布生產了,就沒公升級 由於4.0已經是乙個release 版本了,所以決定這系列文章採用4.0的版本作為記錄 安裝配置jdk 安裝tomcat8,此處不做詳解。部署cas服務端 2.修改cas web inf spring configuration ...
單點登入一
單點登入是什麼 單點登入 single sign on 簡稱為 sso,是目前比較流行的企業業務整合的解決方案之一。sso的定義是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統,即使用者只需要記住一組使用者名稱和密碼就可以登入所有有許可權的系統。如下為乙個單點登入的簡易 當使...