美文网首页
Redis实现分布式登录状态维持

Redis实现分布式登录状态维持

作者: ACtong | 来源:发表于2020-04-30 11:43 被阅读0次

    在Shiro上使用Redis

    1、引入Maven

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

    2、引入配置

    • 在yml文件中
    wxshop:
      redis:
        host: 127.0.0.1
        port: 6379
    

    3、在ShiroConfig中引入bean

    //引入配置的端口
     @Value("{wxshop.redis.host}")
      String redisHost;
    
     @Value("{wxshop.redis.port}")
      int redisPort;
    
     @Bean
        public RedisCacheManager redisCacheManager() {
            RedisCacheManager redisCacheManager = new RedisCacheManager();
            RedisManager redisManager = new RedisManager();
            redisManager.setHost(redisHost + ":" + redisPort);
            redisCacheManager.setRedisManager(redisManager);
            return redisCacheManager;
        }
    
    //把bean传入到
    securityManager.setCacheManager(RedisCacheManager );
    

    4、docker起一个redis

    docker run -d -p 6379:6379 --name=redis redis
    

    redis常用命令

    1. 查看容器IP:docker inspect 0bd85760116f|grep -i add
    2. 进入容器:docker exec -i -t 0bd85760116f /bin/bash

    踩坑

    报错SocketTimeoutException: connect timed out

    由于docker下载的redis容器是没有redis.conf文件的,所以我们需要拷贝一份下来,然后启动,下载地址:redis.conf。下载后修改默认配置文件

    • bind 127.0.0.1 #注释掉这部分。这是限制redis只能本地访问
    • protected-mode no 。#默认yes,开启保护模式,限制为本地访问
    • daemonize no。#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程(可选),改为yes会使配置文件方式启动redis失败

    使用redis.conf启动redis:docker run -p 6379:6379 --name redis -v d:\redis.conf:/etc/redis/redis.conf -d redis

    参考文章

    1、Docker 安装 Redis (Redis 配置)
    2、Docker 启动redis指定配置文件

    相关文章

      网友评论

          本文标题:Redis实现分布式登录状态维持

          本文链接:https://www.haomeiwen.com/subject/mtamwhtx.html