SpringCloud Redisキャッシュの使用
2380 ワード
SpringCloud Redisキャッシュの使用 Redis環境構築 SpringDataRedis は、文書のキャッシュ処理 を実現する.クエリー記事アクションキャッシュ 変更または削除後にキャッシュ をクリアする.キャッシュ期限切れ処理 クエリのパフォーマンスを向上させるには、通常、Redisキャッシュを使用します.
Redis環境構築
我々はdockerの形でRedisサービスを構築します
SpringDataRedis
Spring-data-redisはspringの大家族の一部であり、srpingアプリケーションで簡単な構成でredisサービスにアクセスし、reids下位開発パッケージ(Jedis,JRedis,and RJC)を高度にパッケージ化し、RedisTemplateはredisの様々な操作を提供している.
文章のキャッシュ処理を実現する
クエリー記事アクションキャッシュ
(1)tensquare_articleのpom.xml導入依存
Spring cloudでは次のように導入する必要があります.
(2)アプリケーション.ymlを変更し、springノードの下で構成を追加する
(3)ArticleServiceを修正RedisTemplateを導入しfindByIdメソッドを修正する
これにより、クエリー時に自動的に文章がキャッシュされます.
変更または削除後にキャッシュをクリア
キャッシュの期限切れ処理
findByIdメソッドを変更し、1日の有効期限を設定
テストを容易にするために、有効期限を10秒に変更し、コンソール出力を観察することができます.
Redis環境構築
我々はdockerの形でRedisサービスを構築します
docker run -di --name=tensquare_redis -p 6379:6379 redis
SpringDataRedis
Spring-data-redisはspringの大家族の一部であり、srpingアプリケーションで簡単な構成でredisサービスにアクセスし、reids下位開発パッケージ(Jedis,JRedis,and RJC)を高度にパッケージ化し、RedisTemplateはredisの様々な操作を提供している.
文章のキャッシュ処理を実現する
クエリー記事アクションキャッシュ
(1)tensquare_articleのpom.xml導入依存
Spring cloudでは次のように導入する必要があります.
org.springframework.data
spring-data-redis
redis.clients
jedis
2.9.0
(2)アプリケーション.ymlを変更し、springノードの下で構成を追加する
redis:
host: 192.168.2.10
port: 6379
(3)ArticleServiceを修正RedisTemplateを導入しfindByIdメソッドを修正する
@Autowired
private RedisTemplate redisTemplate;
/**
* ID
* @param id
* @return
*/
public Article findById(String id) {
//
Article article = (Article)redisTemplate.opsForValue().get("article_"+id);
// ,
if (article==null){
article = articleDao.findById(id).get();
//
redisTemplate.opsForValue().set("article_"+id, article, 20, TimeUnit.SECONDS);
}
return article;
}
これにより、クエリー時に自動的に文章がキャッシュされます.
変更または削除後にキャッシュをクリア
/**
*
* @param article
*/
public void update(Article article) {
//
redisTemplate.delete("article_"+article.getId());
articleDao.save(article);
}
/**
*
* @param id
*/
public void deleteById(String id) {
//
redisTemplate.delete("article_"+id);
articleDao.deleteById(id);
}
キャッシュの期限切れ処理
findByIdメソッドを変更し、1日の有効期限を設定
redisTemplate.opsForValue().set("article_" + id, article, 1, TimeUnit.DAYS);
テストを容易にするために、有効期限を10秒に変更し、コンソール出力を観察することができます.
redisTemplate.opsForValue().set("article_" + id, article,10, TimeUnit.SECONDS);