Pass one to Query.results to avoid re-running a query whose results you already have.
Implement it yourself, or use fileCache for a cache backed by a directory on disk.
Set by whatever is being cached rather than by you — Query.results fills in the query's id,
so two queries sharing one cache do not read each other's entries.
Somewhere to store query responses between runs.
Remarks
Pass one to Query.results to avoid re-running a query whose results you already have. Implement it yourself, or use fileCache for a cache backed by a directory on disk.