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

2020-04-30  本文已影响0人  ACtong

在Shiro上使用Redis

1、引入Maven

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

2、引入配置

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。下载后修改默认配置文件

使用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指定配置文件

上一篇 下一篇

猜你喜欢

热点阅读