本文へスキップ
`Ctrl`+`K`

# 7.26.1.4. `grn_cache`

## 7.26.1.4.1. 概要

注釈

このAPIは実験的です。

`grn_cache` は select コマンドのレスポンスを保持するためのデータストアです。一般的なオブジェクトのキャッシュとして使うものではありません。あくまで select コマンドのためのものです。

`grn_cache_current_set()` を使うことで現在のキャッシュオブジェクトを変更することができます。 select コマンドのレスポンスが内部的に用いられます。

select コマンドは、一つのグローバルキャッシュオブジェクトを利用します。もし複数のデータベースをオープンしていた場合、そのキャッシュオブジェクトは共有されます。これは重要な問題です。

もし複数のデータベースを開き、 select コマンドを使用するのであれば、 `grn_cache` オブジェクトを使う必要があります。 groonga-httpd のようなケースが該当します。もし一つのデータベースのみを開く場合や、 select コマンドを使わない場合は、 `grn_cache` オブジェクトを使う必要はありません。 Rroonga のようなケースです。

## 7.26.1.4.2. 例

以下はキャッシュを変更する例です。

    grn_cache *cache;
    grn_cache *cache_previous;
    cache = grn_cache_open(ctx);
    cache_previous = grn_cache_current_get(ctx);
    grn_cache_current_set(ctx, cache);
    /* grn_ctx_send(ctx, ...); */
    grn_cache_current_set(ctx, cache_previous);

## 7.26.1.4.3. リファレンス

注釈

現在、Doxygenを使った自動生成に切り替え中です。