簡介
Redis 是目前使用十分廣泛的內(nèi)存數(shù)據(jù)庫。Redis 比 Memcached 支持更豐富的數(shù)據(jù)類型,如 Lists, Hashes, Sets 及 Ordered Sets 等,支持數(shù)據(jù)持久化、備份;除此之外,Redis 還支持事務,HA,主從庫,同時兼具了非關系型數(shù)據(jù)庫與關系型數(shù)據(jù)的特性,有著豐富的應用場景。
快速上手
1、引入依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.1.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.0</version>
</dependency>
2、配置文件
單機模式
# Redis數(shù)據(jù)庫索引(默認為0)
spring.redis.database=0
# Redis服務器地址
spring.redis.host=127.0.0.1
# Redis服務器連接端口
spring.redis.port=6379
# Redis服務器連接密碼(默認為空)
spring.redis.password=
# 連接池最大連接數(shù)(使用負值表示沒有限制)
spring.redis.jedis.pool.max-active=8
# 連接池最大阻塞等待時間(使用負值表示沒有限制)
spring.redis.jedis.pool.max-wait=-1
# 連接池中的最大空閑連接
spring.redis.jedis.pool.max-idle=8
# 連接池中的最小空閑連接
spring.redis.jedis.pool.min-idle=0
# 連接超時時間(毫秒)
spring.redis.timeout=5000
哨兵模式
spring.redis.lettuce.pool.max-active=8
spring.redis.lettuce.pool.max-wait=-1
spring.redis.lettuce.pool.max-idle=8
spring.redis.lettuce.pool.min-idle=0
spring.redis.timeout=5000
spring.redis.database=0
spring.redis.sentinel.master=mymaster
spring.redis.sentinel.nodes=127.0.0.1:26380,127.0.0.1:26381,127.0.0.1:26382
spring.redis.password=
3、測試
@RunWith(SpringRunner.class)
@SpringBootTest
public class RedisTests {
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Test
public void contextLoads() {
}
@Test
public void setRedis(){
stringRedisTemplate.opsForValue().set("key1","張三");
}
@Test
public void getRedis(){
String s = stringRedisTemplate.opsForValue().get("key1");
System.out.println("s: "+s);
}
}
4、實現(xiàn)共享 Session
1)添加依賴
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
2)配置
@Configuration
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 86400)
public class SessionConfig {
}
maxInactiveIntervalInSeconds: 設置 Session 失效時間
使用 Redis Session 之后,原 Spring Boot 的 server.session.timeout 屬性不再生效。
注
maxInactiveIntervalInSeconds: 設置 Session 失效時間。
使用 Redis Session 之后,原 Spring Boot 的 server.session.timeout 屬性不再生效。
|