簡介
redis是完全開源免費的,遵守BDS協議的,基於內存的高性能NoSQL數據庫。
可以支持每秒十幾萬次的讀/寫操作,還支持集羣,同步,主從同步等配置,並且支持一定的事務能力。redis在java web中主要應用於緩存和高速讀寫。
在使用redis進行存儲的時候一般從一下幾個方面來考慮:
- 命中率。數據是否常用
- 數據是讀操作多還是寫操作多?如果是寫操作比較多也沒有必要用緩存
- 數據大小。如果要存儲上百兆的文件也是沒有必要用緩存的,會給緩存帶來很大的壓力。
redis支持的數據類型:
- string字符串 。string類型是二進制安全的,可以包含任何數據,可以是圖片也可以是序列化對象。string類型最大能存儲512兆。
- list列表。list是一個簡單的按照插入順序排序的字符串列表
- set集合。set是string類型的無序集合,不允許成員重複,是通過哈希表實現的,所以添加、刪除、查找的複雜度都是O(1)
- zset有序集合。每個元素都會關聯一個double類型的分數。redis正是通過分數來爲集合中的成員進行從小到大的排序。zset的成員是唯一的,但分數(score)卻可以重複
- hash哈希。這是一個鍵值對集合,適合用於存儲對象。
在spring boot中使用redis
下載並啓動redis。
一、添加依賴,刷新maven。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
二、添加配置
# REDIS (RedisProperties)
# Redis數據庫索引(默認爲0)
spring.redis.database=0
# Redis服務器地址
spring.redis.host=localhost
# Redis服務器連接端口
spring.redis.port=6379
# Redis服務器連接密碼(默認爲空)
spring.redis.password=
# 連接超時時間(毫秒)
spring.redis.timeout=2000
# 連接池最大連接數(使用負值表示沒有限制)
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
三、測試
@RunWith(SpringRunner.class)
@SpringBootTest(classes={App.class})
public class AppTest
{
@Autowired
private RedisTemplate redisTemplate;
@Test
public void shouldAnswerWithTrue() throws Exception{
//存儲對象
redisTemplate.opsForValue().set("111","222");
//取出對象
String value = (String) redisTemplate.opsForValue().get("111");
System.out.println(value);
}
}
總結
redis是基於內存的高性能NoSQL數據庫,一般用於緩存和高速讀寫。
在spring boot中使用redis,可以使用RedisTemplate:
- 添加依賴
- 添加配置文件,配置redis的鏈接地址,端口,密碼等信息
之後會學習並記錄RedisTemplate的一些常用操作。