官方下载地址:https://redis.io/download
一、安装过程
1.首先把下载的压缩包解压到一个文件夹中
2.打开cmd指令窗口
3.cd到刚才解压的文件路径
4.然后输入redis-server redis.windows.conf 命令
5.接下来部署redis在windows下的服务,关掉上一个窗口再打开一个新的cmd命令窗口
然后输入指令redis-server --service-install redis.windows.conf
随后,进入右击此电脑–管理–服务和应用程序–服务,启动服务
二、Redis常用的指令
卸载服务:redis-server --service-uninstall
开启服务:redis-server --service-start
停止服务:redis-server --service-stop
测试redis,通过cd到我们解压的目录,输入指令redis-cli,通过set a 123|get a指令查看是否成功
查询所有key:keys *
匹配查询key:kyes [key]*
查询key的剩余有效时间:ttl [key]
设置key的到期时间:EXPIRE [key]
三、调优
查看当前的redis连接数
info clients
查询redis允许的最大连接数
config get maxclients
设置redis允许的最大连接数
config set maxclients 100000
四、springboot集成shiro-redis
1.pom.xml 引入jar包
<!-- shiro+redis缓存插件 -->
<dependency>
<groupId>org.crazycake</groupId>
<artifactId>shiro-redis</artifactId>
<version>2.4.2.1-RELEASE</version>
</dependency>
2.application.properties 配置
#redis
redis.host=localhost
redis.port=6379
3.ShiroConfig.java 加入如下四个方法,并修改 WebSecurityManager 方法
// cacheManager 缓存 redis实现 使用的是shiro-redis开源插件
public RedisCacheManager cacheManager() {
RedisCacheManager redisCacheManager = new RedisCacheManager();
redisCacheManager.setRedisManager(redisManager());
return redisCacheManager;
}
// 配置shiro redisManager 使用的是shiro-redis开源插件
public RedisManager redisManager() {
RedisManager redisManager = new RedisManager();
redisManager.setHost(redis_host);
redisManager.setPort(redis_port);
redisManager.setExpire(1800);// 配置缓存过期时间 30分钟
redisManager.setTimeout(0);
// redisManager.setPassword(password);
return redisManager;
}
// SessionManager 使用的是shiro-redis开源插件
@Bean
public DefaultWebSessionManager sessionManager() {
DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
// 重定向url去除jssessionid
sessionManager.setSessionIdUrlRewritingEnabled(false);
sessionManager.setSessionDAO(redisSessionDAO());
return sessionManager;
}
// RedisSessionDAO shiro sessionDao层的实现 通过redis 使用的是shiro-redis开源插件
@Bean
public RedisSessionDAO redisSessionDAO() {
RedisSessionDAO redisSessionDAO = new RedisSessionDAO();
redisSessionDAO.setRedisManager(redisManager());
return redisSessionDAO;
}
// 权限管理配置
@Bean
public WebSecurityManager securityManager() {
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
// 设置realm
securityManager.setRealm(myShiroRealm());
// 设置普通缓存
// securityManager.setCacheManager(getCache());
// 自定义缓存实现 使用redis
securityManager.setCacheManager(cacheManager());
// 自定义session管理 使用redis
securityManager.setSessionManager(sessionManager());
return securityManager;
}
4、全局异常捕捉
@ControllerAdvice
public class ExceptionFilter {
@ExceptionHandler
@ResponseBody
public String ErrorHandler(Exception e) {
return "未知异常!原因是" + e;
}
@ExceptionHandler
@ResponseBody
public String ErrorHandler(JedisConnectionException e) {
return "redis连接失败!";
}
}