想象一個(gè)場(chǎng)景橘原,現(xiàn)在一到面試題呈現(xiàn)在你面前,讓你從零開(kāi)始設(shè)計(jì)一個(gè) Session 存儲(chǔ)方案郁妈,你會(huì)怎么回答浑玛?
說(shuō)白了就是讓你設(shè)計(jì)一套數(shù)據(jù)結(jié)構(gòu)存儲(chǔ) Session,并且我相信提出這個(gè)問(wèn)題時(shí)噩咪,大多數(shù)讀者腦海中會(huì)浮現(xiàn)出 redis顾彰,設(shè)計(jì)一個(gè) map失晴,使用 ttl 等等,但沒(méi)想到的細(xì)節(jié)可能會(huì)更多拘央。先來(lái)預(yù)覽一下 Spring Session 的實(shí)際數(shù)據(jù)結(jié)構(gòu)是什么樣的(使用 spring-session-redis 實(shí)現(xiàn)),當(dāng)我們?cè)L問(wèn)一次集成了Spring Session 的 web 應(yīng)用時(shí)
@RequestMapping("/helloworld")
publicStringhello(HttpSession session){
session.setAttribute("name","xu");
return"hello.html";
}
可以在 Redis 中看到如下的數(shù)據(jù)結(jié)構(gòu):
A) "spring:session:sessions:39feb101-87d4-42c7-ab53-ac6fe0d91925"
B) "spring:session:expirations:1523934840000"
C) "spring:session:sessions:expires:39feb101-87d4-42c7-ab53-ac6fe0d91925"