Spring Boot 2(8):Spring Boot統合Memcached
Memcachedの紹介
Memcachedは、データベース負荷を軽減するための動的Webアプリケーション用の高性能分散メモリオブジェクトキャッシュシステムです.メモリにデータとオブジェクトをキャッシュすることで、データベースの読み取り回数を減らし、動的でデータベース駆動のWebサイトの速度を向上させます.Memcachedは、1つのストレージキー/値ペアのhashmapに基づいている.そのデーモンプロセス(daemon)はCで書かれていますが、クライアントは任意の言語で記述し、memcachedプロトコルを介してデーモンプロセスと通信することができます.
Spring BootはMemcachedに対応するパッケージを提供していないため、独自に統合する必要があります.公式に発売されたJavaクライアントSpymemcachedは比較的良い選択の一つです.
Spymemcachedの紹介
Spymemcachedは最初にDustin Sallingsによって開発され、Dustinは後に他の人とCouchbase(元NorthScale)を設立し、首席アーキテクチャ師として働いた.2014年にGoogleに加入.
SpymemcachedはJavaによって開発された非同期、単一スレッドのMemcachedクライアントであり、NIOを使用して実現される.SpymemcachedはMemcachedのポピュラーなJava clientライブラリで、パフォーマンスが優れ、Java+Memcachedプロジェクトに広く応用されています.
依存構成
依存の追加
pomxパッケージにspymemcachedの参照を追加
構成の追加
それぞれmemcacheのIpアドレスとポートを構成します.
構成オブジェクトの設定
MemcachedClientの初期化を開始
前節の内容Spring Boot 2(7):Spring Bootを使用して、プロジェクトの開始時にリソースを初期化し、CommandLineRunnerを使用してプロジェクトの開始時にMemcachedClientを構成します.
テストの使用
使用中にキーをtestkey、1000をミリ秒単位で挿入し、最後の「666666」をキーに対応する値として挿入します.
テスト例testSetGetを実行し、コンソールからコンテンツを出力します.
テストが成功したことを示します.
サンプルコード-github
サンプルコード-コードクラウド
Memcachedは、データベース負荷を軽減するための動的Webアプリケーション用の高性能分散メモリオブジェクトキャッシュシステムです.メモリにデータとオブジェクトをキャッシュすることで、データベースの読み取り回数を減らし、動的でデータベース駆動のWebサイトの速度を向上させます.Memcachedは、1つのストレージキー/値ペアのhashmapに基づいている.そのデーモンプロセス(daemon)はCで書かれていますが、クライアントは任意の言語で記述し、memcachedプロトコルを介してデーモンプロセスと通信することができます.
Spring BootはMemcachedに対応するパッケージを提供していないため、独自に統合する必要があります.公式に発売されたJavaクライアントSpymemcachedは比較的良い選択の一つです.
Spymemcachedの紹介
Spymemcachedは最初にDustin Sallingsによって開発され、Dustinは後に他の人とCouchbase(元NorthScale)を設立し、首席アーキテクチャ師として働いた.2014年にGoogleに加入.
SpymemcachedはJavaによって開発された非同期、単一スレッドのMemcachedクライアントであり、NIOを使用して実現される.SpymemcachedはMemcachedのポピュラーなJava clientライブラリで、パフォーマンスが優れ、Java+Memcachedプロジェクトに広く応用されています.
依存構成
依存の追加
pomxパッケージにspymemcachedの参照を追加
net.spy
spymemcached
2.12.2
構成の追加
memcache.ip=192.168.0.161
memcache.port=11211
それぞれmemcacheのIpアドレスとポートを構成します.
構成オブジェクトの設定
MemcacheSource
受信構成情報の作成@Component
@ConfigurationProperties(prefix = "memcache")
public class MemcacheSource {
private String ip;
private int port;
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
}
@ConfigurationProperties(prefix = "memcache")
とは、memcache.*
を開通として対応するプロファイルを属性にロードすることを意味します.MemcachedClientの初期化を開始
前節の内容Spring Boot 2(7):Spring Bootを使用して、プロジェクトの開始時にリソースを初期化し、CommandLineRunnerを使用してプロジェクトの開始時にMemcachedClientを構成します.
@Component
public class MemcachedRunner implements CommandLineRunner {
protected Logger logger = LoggerFactory.getLogger(this.getClass());
@Resource
private MemcacheSource memcacheSource;
private MemcachedClient client = null;
@Override
public void run(String... args) throws Exception {
try {
client = new MemcachedClient(new InetSocketAddress(memcacheSource.getIp(),memcacheSource.getPort()));
} catch (IOException e) {
logger.error("inint MemcachedClient failed ",e);
}
}
public MemcachedClient getClient() {
return client;
}
}
テストの使用
@RunWith(SpringRunner.class)
@SpringBootTest
public class RepositoryTests {
@Resource
private MemcachedRunner memcachedRunner;
@Test
public void testSetGet() {
MemcachedClient memcachedClient = memcachedRunner.getClient();
memcachedClient.set("testkey",1000,"666666");
System.out.println("*********** "+memcachedClient.get("testkey").toString());
}
}
使用中にキーをtestkey、1000をミリ秒単位で挿入し、最後の「666666」をキーに対応する値として挿入します.
テスト例testSetGetを実行し、コンソールからコンテンツを出力します.
*********** 666666
テストが成功したことを示します.
サンプルコード-github
サンプルコード-コードクラウド