一、Redis介紹及基本概念
Redis是一個基於內存的key-value存儲系統,它擁有高性能、可擴展性和靈活性,並且支持多種數據結構。通常用於緩存、隊列、排名等場景。
Redis有以下幾個基本概念:
Key:Redis中的數據存儲是以key-value的方式進行,而key就是用來標識唯一數據的字符串。
Value:Redis中的數據可以是任意的數據類型,包括字符串、哈希、列表、集合等。
Expiration:Redis支持給每個key設置過期時間,到了過期時間後key會被自動刪除。
Namespace:Redis的key可以通過一個命名空間進行分組,命名空間下的key會被Redis自動統一添加一個前綴。這樣做可以方便地查看和管理命名空間下的key。
二、Spring Boot集成Redis
Spring Boot為我們提供了非常方便的方式來集成Redis。只需添加如下依賴:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
同時,我們需要在application.properties中配置Redis相關的信息:
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=
spring.redis.database=0
其中,spring.redis.host和spring.redis.port分別是Redis服務器的IP地址和端口號;spring.redis.password是Redis密碼;spring.redis.database是Redis庫的編號。
三、Redis緩存管理的基本使用
1. 緩存註解
Spring Boot為我們提供了緩存註解,包括@Cacheable、@CachePut、@CacheEvict等。其中:
- @Cacheable:查詢緩存,如果緩存中存在,則直接返回緩存中的數據,否則執行方法,將方法返回結果存入緩存。
- @CachePut:更新緩存,執行方法並將返回結果存入緩存。
- @CacheEvict:刪除緩存,執行方法並刪除緩存。
這裡以@Cacheable為例介紹緩存的基本使用。首先要在啟動類上添加@EnableCaching註解,開啟緩存功能。
@SpringBootApplication
@EnableCaching
public class RedisApplication {
public static void main(String[] args) {
SpringApplication.run(RedisApplication.class, args);
}
}
然後,在需要進行緩存管理的方法上添加@Cacheable註解即可:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
@Cacheable(value = "userCache", key = "#id")
public User getUserById(String id) {
System.out.println("get user by id from db");
return userDao.getUserById(id);
}
}
其中,value為緩存名稱,key為緩存的唯一標識。上面代碼的意思是,在緩存名稱為userCache的緩存中,key為參數id的緩存是否存在。如果存在,則方法不執行,直接返回緩存中的數據;如果不存在,則執行方法,並將方法返回結果存入緩存。
2. 緩存過期
Redis支持對每個key設置過期時間,到了過期時間後key會被自動刪除。可以通過@Cacheable註解的ttl屬性指定緩存的過期時間,ttl的單位是秒。
@Cacheable(value = "userCache", key = "#id", ttl = 60)
上面代碼的意思是,將key為$id的緩存數據放入userCache緩存中,並設置過期時間為60秒。
四、命名空間
Redis支持給key設置命名空間,以防止不同功能模塊之間產生衝突。在Spring Boot中,可以通過在@CacheConfig註解中指定cacheNames來指定緩存命名空間。
@CacheConfig(cacheNames = "user")
上面代碼的意思是,緩存將被存儲在“user”命名空間中。
五、總結
通過本文的介紹,我們了解了Redis的基本概念和Spring Boot集成Redis的方法。同時,我們還介紹了Spring Boot提供的緩存註解@Cacheable、@CachePut、@CacheEvict,以及緩存過期和命名空間的使用方法。
在實際開發中,我們可以根據實際情況選擇合適的緩存策略,提高系統性能,滿足業務需求。
原創文章,作者:MSOJ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/132010.html