Loading data from multiple sources with RxJava

Suppose I have some Data that I query from the network. I could simply hit the network each time I need the data, but caching the data on disk and in memory would be much more efficient. More specifically, I want a setup that: Occasionally performs queries from the network