美文网首页
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