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 服务的类中引用这个类就可以了。