Java 编程语言提供了多种连接 Redis 服务的客户端驱动。如下:
在 Spring boot 项目整合 Redis 中,最主要的 Bean 操作组件就是 RedisTemplate 和 StringRedisTemplate。
这个类的名字后缀是Template,如果了解过 Spring 如何连接关系型数据库的,大概不会难猜出这个类是做什么的 ,它跟JdbcTemplate一样封装了对Redis的一些常用的操作。
跟RedisTemplate功能类似;两者之间的区别主要在于他们使用的序列化类。
1、当 redis 数据库里面存储的是【字符串】类型数据,那么使用 StringRedisTemplate 即可。
2、如果 Redis 服务中数据是复杂的【对象类型】,而且你在取出的时候又不想做任何的数据转换,直接从 Redis 里面取出一个对象,那么使用RedisTemplate是更好的选择。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
spring-boot-starter-data-redis有两种实现:lettuce 和 jedis ,然而默认是使用lettuce。
spring:
redis:
database: 1
host: 127.0.0.1
password: password
port: 6379
timeout: 3000
jedis:
pool:
max-idle: 500
min-idle: 50
max-active: 2000
max-wait: 1000
@Component
public class RedisSerialUtil {
@Autowired
private RedisTemplate<String,String> redisTemplate;
/**
* 默认过期时长,单位:秒
*/
public static final long DEFAULT_EXPIRE = 60 * 60 * 24;
/**
* 不设置过期时长
*/
public static final long NOT_EXPIRE = -1;
/**
* 普通缓存放入
* @param key 键
* @param value 值
* @return true成功 false失败
*/
public boolean set(String key, String value) {
try {
redisTemplate.opsForValue().set(key,value);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
......
}
然后在需要操作 Redis 服务的类中引用这个类就可以了。