1.在pom.xml中引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.1.4.RELEASE</version>
</dependency>
目前2.1.4版本是当前最新版本,于2019年4月发布。
2. 编写RedisService类
@Autowired
private StringRedisTemplate stringRedisTemplate;
public void setString(String key, String value, Long time) {
this.setObject(key, value, time);
}
public void setList(String key, List listValue, Long time) {
this.setObject(key, listValue, time);
}
public void setString(String key, String value) {
this.setObject(key, value, null);
}
public void setList(String key, List listValue) {
this.setObject(key, listValue, null);
}
public void setObject(String key, Object value, Long time) {
if (StringUtils.isEmpty(key) || value == null) {
return;
}
//判断类型 存放string类型
if (value instanceof String) {
String strValue = (String) value;
stringRedisTemplate.opsForValue().set(key, strValue);
if (time != null) {
stringRedisTemplate.opsForValue().set(key, strValue, time, TimeUnit.SECONDS);
}
return;
}
//存放list类型
if (value instanceof List) {
List listValue = (List) value;
for (String string : listValue) {
stringRedisTemplate.opsForList().leftPush(key, string);
}
return;
}
//存放set类型
if (value instanceof Set) {
Set setValue = (Set) value;
for (String string : setValue) {
stringRedisTemplate.opsForSet().add(key, string);
}
return;
}
//存放hash类型
if (value instanceof Map) {
Map mapValue = (Map) value;
stringRedisTemplate.opsForHash().putAll(key, mapValue);
return;
}
}
public String getStringKey(String key) {
return stringRedisTemplate.opsForValue().get(key);
}
3.面试题:1.redis有几种数据类型?
答:有5种。string(用到最多), list(有序可重复), set(无序不重复), zset(有序不重复), hash(hashmap)
2.redis怎么存放对象?用什么数据类型好?
答:使用string类型,采用json格式。将对象转化为json格式存放在redis中,从redis中获取到json值反序列化成对象。
4.在application.xml 配置redis
spring:
redis:
database: 0 # Redis数据库索引(默认为0
host: 192.168.2.3 # Redis服务器地址
port: 6379 # Redis服务器连接端口
password: # Redis服务器连接密码(默认为空)
jedis:
pool:
max-active: 8 # 连接池最大连接数(使用负值表示没有限制)
max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
max-idle: 8 # 连接池中的最大空闲连接
min-idle: 0 # 连接池中的最小空闲连接
timeout: 5000 # 连接超时时间(毫秒)