Redis - L2 キャッシュ
ebean.redis
のプロパティを main/resources/application.yaml
に設定して、使用する redis サーバーを構成します。以下を参照してください。
DatabaseFactory と DatabaseConfig 経由で プログラム的に データベースを作成するときにプロパティの構成が機能するためには、DatabaseConfig.loadFromProperties()
を使ってプロパティを読み込む必要があります。
ebean:
redis:
server: test-server
port: 99
minIdle: 2
maxIdle: 20
maxTotal: 20
maxWaitMillis: 300
テスト目的のために、test/resources/application-test.yaml
に ebean.test.redis
プロパティを latest
に設定します。これによって ebean-test が L2 キャッシュと共に使用するための redis docker コンテナを自動的に起動します。
ebean:
test:
redis: latest
platform: h2 # h2, postgres, mysql, oracle, sqlserver, sqlite
ddlMode: dropCreate # none | dropCreate | migrations | create
dbName: my_app
ebean-redis 依存関係
ebean-redis
を依存関係として追加します。これにより、L2 キャッシュ サービスとして ebean に自動的に登録されます。
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-redis</artifactId>
<version>13.25.0</version>
</dependency>
@Cache
@Cache
で注釈が付けられたエンティティ ビーンは、L2 キャッシュに redis を使用するようになります。
@Cache(enableQueryCache = true, nearCache = true, naturalKey = "name")
@Entity
public class Person extends EBase {
public enum Status {
NEW,
ACTIVE,
INACTIVE
}
@Index(unique = true)
String name;
Status status;
LocalDate localDate;
String notes;
public Person(String name) {
this.name = name;
this.status = Status.NEW;
}
...
}
Docker コンテナ
Docker コンテナ バージョンの Redis をプログラム的に起動できます。
以下では、ebean-test
と共に提供される ebean-test-docker
依存関係を使用します。ebean-test
に依存関係がない場合は、io.ebean:ebean-test-docker:5.0
を依存関係として追加します。
package main;
import io.ebean.docker.commands.RedisContainer;
public class Main {
public static void main(String[] args) {
RedisContainer container = RedisContainer.newBuilder("latest")
.build();
container.start();
}
}