Signal Processing for Caching Networks and Non-volatile Memories