在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常用命令
- 查看容器IP:
docker inspect 0bd85760116f|grep -i add
- 进入容器:
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
网友评论