springboot集成shiro+redis

springboot集成shiro+redis

前言

在之前的几篇文章里,我们简单学习了springboot集成shiro进行权限管理的相关知识。还没有了解的朋友可以 去看看之前的文章:

1、springboot集成shiro实现用户登录认证
2、springboot集成shiro实现RemeberMe
3、springboot集成shiro实现权限管理

那么我们在之前的文章中由于使用的是Druid数据库连接池,尽管会轻微减轻数据库访问压力,但是当访问量增多的情况下,特别在处理高并发的时候,这样的查询速度是很慢的,所以今天我们引进Redis缓存。这样在处理数据时就会大量减轻数据库压力。

Redis

Redis官方网站:点击访问
如果你对Redis不是很了解,那可以看我之前的文章:
Redis基础

依赖

为了能够使用Redis我们还需要引入相关依赖,大佬们已经帮我们把Redis跟Spring进行整合了,所以我们直接拿来用就好了。

        <dependency>
            <groupId>org.crazycake</groupId>
            <artifactId>shiro-redis</artifactId>
            <version>2.8.24</version>
        </dependency>

配置文件

我们引入依赖以后,还需要将Redis注入到spring当中,才可以让我们的程序正确使用它:
修改ShiroConfig

/**
     * Redis配置
     * @return
     */
    public RedisManager redisManager(){
        RedisManager redisManager = new RedisManager();
        return redisManager;
    }
    public RedisCacheManager redisCacheManager(){
        RedisCacheManager redisCacheManager = new RedisCacheManager();
        redisCacheManager.setRedisManager(redisManager());

        return redisCacheManager;
    }

做了这个配置之后,那我们接下来就是把它注入到ShiroRealm

@Bean
    public SecurityManager securityManager(){
        // 配置SecurityManager,并注入shiroRealm
        DefaultWebSecurityManager securityManager =  new DefaultWebSecurityManager();
        securityManager.setRealm(shiroRealm());
       //注入RemeberMeManager 	
       securityManager.setRememberMeManager(rememberMeManager());
       //注入RedisCacheManager
       
        securityManager.setCacheManager(redisCacheManager());
        return securityManager;
    }

测试

启动以后,访问:http://localhost:8080 登录,随便点击。“获取用户信息”,我们发现后台只有一条查询语句
1
登录Druid监控后台,
2
我们发现sql也只有一条查询语句,这就证明我们的缓存使用成功了。

总结

基本上在开发大型高并发的系统时都会用到缓存技术,所以在这里我们就先简单的了解下。
注意:在使用的时候,一定要先启动Redis的服务端才能使程序正确跑通。博主在写博客的时候,就是因为忘记启动Redis了,所以出了错误。

  • 评论列表:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Copyright bcfou.com.Some Rights Reserved.