Reuse cache providers instead of creating a new instance each time (unless the implementation wants a brand new instance...). RE: #2162