安装Redis
A: 开启redis服务
redis网站官方并没有windows版本,只有Microsoft Open Tech group 在 GitHub上开发了一个Win64的版本,地址为https://github.com/MicrosoftArchive/redis/releases 。
B:下载后解压即可
(注意需要管理员用户登陆),用的较多的文件如下
-
redis-server.exe 服务器
-
redis-cli.exe 客户端
-
redis.windows.conf 配置文件
C:运行redis-server.exe启动redis服务器
- 可以使用redis自带客户端连接,运行redis-cli.exe即可访问,默认访问的是db0。
扩展说一下,redis默认安装后有db0-db15共16个库,可以理解为mysql的库,注意 redis分库不会提升任何单台redis实例的性能,这里db0-db15库的概念在应用当中为区分数据类型,比如db0为测试库,db1为生产库,因为不同db上key可以重复。
切换db使用select选择具体库
-
安装Redis桌面客户端
[下载地址](链接:https://pan.baidu.com/s/1hHQ-TrqCXA5-Nbp0x016-g
提取码:ft61
复制这段内容后打开百度网盘手机App,操作更方便哦)2.1 创建一个新的Name : my host:127.0.0.1 port:6379
2.2 选中db2
添加key :wanwan
value:小兔子
spring boot集成Redis
1.pom 依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
<version>1.4.7.RELEASE</version>
</dependency>
2. 配置Redis
直接在application.yml文件中添加即可
注意里面的database选择是2,那你测试的时候就要用第二个,
不然你查不到数据,这个就相当于MySQL的数据库名称
spring:
redis:
database: 2
host: 127.0.0.1
port: 6379
#password
timeout: 5000
pool:
# 最大空闲连接数
max-idle: 8
# 最小空闲连接数
min-idle: 0
# 最大活跃连接数
max-active: 8
# 获取连接时的最大等待毫秒数(-1阻塞不确定的时间)
max-wait: -1
添加完Redis之后的application-dev.yml文件为:
logging:
config: classpath:conf/logback-dev.xml
spring:
datasource:
name: test
url: jdbc:mysql://localhost:3306/cms?characterEncoding=utf8
username: root
password: 123456
# 使用druid数据源
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
filters: stat
maxActive: 20
initialSize: 1
maxWait: 60000
minIdle: 1
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: select 'x'
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxOpenPreparedStatements: 20
redis:
database: 2
host: 127.0.0.1
port: 6379
#password
timeout: 5000
pool:
# 最大空闲连接数
max-idle: 8
# 最小空闲连接数
min-idle: 0
# 最大活跃连接数
max-active: 8
# 获取连接时的最大等待毫秒数(-1阻塞不确定的时间)
max-wait: -1
3. 打开redis服务测试
下面的测试用的是redis的db0数据库
package com.pf.org.cms.configuration;/**
* Created by Administrator on 2018/2/6.
*/
import redis.clients.jedis.Jedis;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
/**
* Created by hcg on 2018/2/6.
*/
public class RedisTest {
public static void main(String[] args) {
//连接本地的 Redis 服务
Jedis jedis = new Jedis("localhost");
System.out.println("连接成功");
//查看服务是否运行
System.out.println("服务正在运行: "+jedis.ping());
//
// //连接本地的 Redis 服务
// Jedis jedis = new Jedis("localhost");
// System.out.println("连接成功");
// //设置 redis 字符串数据
// jedis.set("runoobkey", "www.runoob.com");
// // 获取存储的数据并输出
// System.out.println("redis 存储的字符串为: "+ jedis.get("runoobkey"));
// }
jedis.lpush("site-list", "Runoob");
jedis.lpush("site-list", "Google");
jedis.lpush("site-list", "Taobao");
// 获取存储的数据并输出
List<String> list = jedis.lrange("site-list", 0 ,2);
for(int i=0; i<list.size(); i++) {
System.out.println("列表项为: "+list.get(i));
}
// 获取数据并输出
Set<String> keys = jedis.keys("*");
Iterator<String> it=keys.iterator() ;
while(it.hasNext()){
String key = it.next();
System.out.println(key);
}
}
}
输出结果:
连接成功
服务正在运行: PONG
列表项为: Taobao
列表项为: Google
列表项为: Runoob
site-list
wanwan
4. 写一个Controller测试
4.1 写controller之前要写service,这里我们叫他《RedisManager》
封装StringRedisTemplate StringRedisTemplate是Spring继承RedisTemplate基础上封装的操作模板,
两者之间的区别可以参考(http://blog.csdn.net/notsaltedfish/article/details/75948281),为了方便自己使用,再做一次封装,也有利于了解StringRedisTemplate的API。
//RedisManager部分代码
public interface RedisManager {
/**
* 查询字符串
*
* @param key
* @return
*/
public String getStr(String key);
}
@Service(value = "redisManager")
public class RedisManagerImpl implements RedisManager {
@Autowired
private StringRedisTemplate redisTemp;
//这里需要引入下面的包
//import org.springframework.data.redis.core.StringRedisTemplate;
@Override
public String getStr(String key) {
return redisTemp.opsForValue().get(key);
}
}
4.2 controller测试
注意:路径一定是shiro没有拦截的,因为之前我们定义了shiro
而且你的数据一定要在db2的数据库上面
@RequestMapping(value = "/demo", method = RequestMethod.GET)
@ResponseBody
public String testRedis(String key) {
System.out.println("入参key为:"+key);
String s = "查询结果为:"+redisManager.getStr(key);
return s;
}