Java プロジェクトの開始時に特定のメソッドが最初にロードされ、これを使用して Redis キャッシュをウォームアップできます。
ビジネス シナリオ: システムの起動後、キャッシュの予熱のためにホットスポット データを Redis にロードするなど、特定のメソッドを最初にロードする必要があります。
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
@Slf4j
@Service
public class FirstService {
@PostConstruct
public void test() {
System.out.println("First-PostConstruct:开始运行...");
}
}
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
@Slf4j
@Service
public class TwoService implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println("Two-CommandLineRunner:开始运行...");
}
}
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class ThreeService implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("Three-ApplicationRunner:开始运行...");
}
}
実行順序@PostConstruct
—> ApplicationRunner
—>CommandLineRunner
キャッシュのウォームアップ
1. 定義
キャッシュの予熱とは、システムがオンラインになった後、キャッシュの故障を防ぐために最初に特定のホットスポット キーをロードすることです。
2. 解決策
1) ホットスポット キーをロードするメソッドを手動で記述し、オンラインになった後に呼び出します
2) データ量が大きくないため、プロジェクトの開始時に自動的にロードできます。
3) スケジュールされたタスクを通じてキャッシュを更新します。