Redis 是一种键值数据库,而且以字符串类型为中心,当前它能够支持多种数据类型,包括字符串、散列
列表(链表)、集合、有序集合、基数和地理位置等。
![](https://xlactive-1258062314.cos.ap-chengdu.myqcloud.com/springboot/Spring%E5%AF%B9Redis%E7%9A%84%E7%B1%BB%E8%AE%BE%E8%AE%A1.png)
从图中可以看出RedisConnection接口操作Redis的,而RedisConnection则对原生Jedis进行封装。要获取RedisConnection接口对象,是通过RedisConnectFactory接口生成的。
RedisConnectFactory接口对象:
@Configuration
public class RedisConfig {
private RedisConnectionFactory connectionFactory = null;
@Bean(name = "RedisConnectionFactory")
public RedisConnectionFactory initRedisConnectionFactory(){
if (this.connectionFactory != null) {
return this.connectionFactory;
}
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxIdle(30);
poolConfig.setMaxTotal(50);
poolConfig.setMaxWaitMillis(2000);
// Jedis连接工厂
JedisConnectionFactory connectionFactory = new JedisConnectionFactory(poolConfig);
// 单机 Redistribute配置
RedisStandaloneConfiguration rsCfg = connectionFactory.getStandaloneConfiguration();
System.out.println(rsCfg);
rsCfg.setHostName("localhost");
rsCfg.setPort(6379);
rsCfg.setPassword("123456");
// System.out.println(connectionFactory);
this.connectionFactory = connectionFactory;
return connectionFactory;
}
...
}
RedisTemplate
它会自动从RedisConnectionFactroy工厂中获取连接,然后执行对应的Redis命令,在最后还会关闭Reids的连接。
创建RedisTemplate
@Bean(name = "redisTemplate")
public RedisTemplate<Object, Object> initRedisTempla