zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

改善性能Shiro用Redis做缓存(shiro使用redis)

Redis性能缓存 使用 改善 shiro
2023-06-13 09:11:24 时间

现今的信息安全体系尤其重要,Shiro作为经过积累和完善的安全框架,成为首选,但众所周知,安全验证易造成调用次数高,导致性能下降,这里将介绍Shiro使用Redis做缓存有效改善性能的做法。

安装并启动Redis,创建ShiroConfig类,加入RedisCacheManager实例,主要如下:

`java

@Configuration

public class ShiroConfig {

@Bean

public RedisCacheManager redisCacheManager(){

RedisCacheManager redisCacheManager = new RedisCacheManager();

return redisCacheManager;

}

}


然后,在程序的securityManager中实例化RedisCacheManger,一般通过编写Realm实现,代码如下:
```java@Configuration
public class ShiroConfig {
@Bean public Realm realm() {
AuthorizingRealm realm = new AuthorizingRealm() { // 重写doGetAuthenticationInfo()和doGetAuthorizationInfo()
@Override protected AuthorizationInfo doGetAuthorizationInfo() {
// 设置cache管理 SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
info.setCache(cacheManager.getCache("authorizationCache")); return info;
} }
}}

在应用中使用即可,如下:

`java

@Service

public class UserService {

@Autowired

private SecurityManager securityManager;

// 根据用户名获取登录信息

public User getUserByName(String name) {

// 将用户名+角色信息加入到shiro的cache中

securityManager.getCacheManager().getCache(name).put(name, role);

// 从缓存中获取数据

return (User) securityManager.getCacheManager().getCache(name).get(name);

}

}


通过给安全管理器配置RedisCacheManager,可以将一些重复的权限验证缓存起来,复用已有验证,减轻了验证的调用次数,降低了性能的消耗,在安全体系中可以使用这些技术有效改善性能。

我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题

本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 改善性能Shiro用Redis做缓存(shiro使用redis)