新聞中心
Shiro集成Redis是一個(gè)很棒的解決方案,可以節(jié)省大量的服務(wù)資源,減少系統(tǒng)耦合,提高性能。由于它是一種開源框架,因此使我們可以非常靈活地實(shí)現(xiàn)登錄和權(quán)限管理功能,以及使用Redis來存儲(chǔ)Shiro的數(shù)據(jù),進(jìn)一步提升系統(tǒng)的性能。本文將重點(diǎn)介紹如何在Shiro中將數(shù)據(jù)存儲(chǔ)到Redis的實(shí)踐。

公司主營業(yè)務(wù):成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出枝江免費(fèi)做網(wǎng)站回饋大家。
我們需要在項(xiàng)目中引入Redis和Shiro的相關(guān)依賴包,包括commons-pool2、shiro-redis和shiro-all,要在項(xiàng)目中使用Redis,需要在相關(guān)的配置文件中聲明Redis相關(guān)配置,如下所示:
#Redis
#服務(wù)器地址
Spring.redis.host=127.0.0.1
#端口號(hào)
Spring.redis.port=6379
#連接密碼(默認(rèn)為空)
Spring.redis.password=
#連接超時(shí)時(shí)間(毫秒)
Spring.redis.timeout=1800000
我們還需要為Shiro配置一個(gè)Redis連接工廠,來負(fù)責(zé)管理Shiro 與Redis之間的連接。我們可以配置如下:
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.port}")
private int port;
@Value("${spring.redis.password}")
private String password;
@Value("${spring.redis.timeout}")
private int timeout;
private JedisPool jedisPool;
@bean
public JedisPool getJedisPool() {
jedisPool = new JedisPool(host, port);
return jedisPool;
}
@Bean
public RedisManager shiroRedisManager() {
RedisManager redisManager = new RedisManager();
redisManager.setHost(host);
redisManager.setPort(port);
redisManager.setPassword(password);
redisManager.setExpire(timeout);
redisManager.setTimeout(timeout);
return redisManager;
}
我們還需要配置一個(gè)SecurityManager,它是使用RedisManager來負(fù)責(zé)所有Shiro相關(guān)安全操作的配置,如下所示:
@Bean
public DefaultWebSecurityManager securityManager() {
DefaultWebSecurityManager manager = new DefaultWebSecurityManager();
manager.setRealm(shiroRealm());
manager.setCacheManager(redisCacheManager());
return manager;
}
@Bean
public ShiroRealm shiroRealm(){
ShiroRealm shiroRealm = new ShiroRealm();
shiroRealm.setCachingEnabled(true);
shiroRealm.setCacheManager(redisCacheManager());
return shiroRealm;
}
@Bean
public RedisCacheManager redisCacheManager() {
RedisCacheManager redisCacheManager = new RedisCacheManager();
redisCacheManager.setRedisManager(shiroRedisManager());
return redisCacheManager;
}
總結(jié)來說,之前介紹的是在Shiro中使用Redis來存儲(chǔ)數(shù)據(jù)的實(shí)踐。這樣做的優(yōu)勢是可以實(shí)現(xiàn)分布式緩存、更好的性能、提高應(yīng)用程序靈活性、減少耦合等。
成都網(wǎng)站推廣找創(chuàng)新互聯(lián),老牌網(wǎng)站營銷公司
成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)(www.cdcxhl.com)專注高端網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì)制作,網(wǎng)站維護(hù),網(wǎng)絡(luò)營銷,SEO優(yōu)化推廣,快速提升企業(yè)網(wǎng)站排名等一站式服務(wù)。IDC基礎(chǔ)服務(wù):云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)、服務(wù)器租用、服務(wù)器托管提供四川、成都、綿陽、雅安、重慶、貴州、昆明、鄭州、湖北十堰機(jī)房互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務(wù)。
分享題目:Shiro存儲(chǔ)數(shù)據(jù)到Redis的實(shí)踐(shiro去 Redis)
文章地址:http://fisionsoft.com.cn/article/cddisso.html


咨詢
建站咨詢
