use the WebCache attribute on your interface. An example:
[
WebCache(Location =
OutputCacheLocation.ServerAndClient, SqlDependency =
"myDatabase:Products", VaryByParam =
"categoryId")]
The above example uses a SqlDependency but it is not required.
The WebCache attribute causes WCF to integrate with the ASP.NET caching system. It applies standard HTTP caching behavior such as the use of the cache-control and expires headers. This is only available in the WCF REST starter kit.
You can also use ChannelFactory caching in non-REST services. See here for details:
http://blogs.msdn.com/b/wenlong/archive/2007/10/27/performance-improvement-of-wcf-client-proxy-creation-and-best-practices.aspx