Generic cache interface and implementations
