Caching at the wireless edge is a promising way of boosting spectral efficiency and reducing energy consumption of wireless systems. These improvements are rooted in the fact that popular contents are reused, asynchronously, by many users. In this article, we first introduce methods to predict the popularity distributions and user preferences, and the impact of erroneous information. We then discuss the two aspects of caching systems, namely content placement and delivery. We expound the key differences between wired and wireless caching, and outline the differences in the system arising from where the caching takes place, e.g., at base stations, or on the wireless devices themselves. Special attention is paid to the essential limitations in wireless caching, and possible tradeoffs between spectral efficiency, energy efficiency and cache size.