My experience with AppFabric was that it was mainly a key/value store. In addition to a key and a value for an object, you can tag it, which is just a list of strings that describe the object.
I tried to tag objects to introduce some meta data (because the key wasn't enough to describe my objects) and it became a nightmare to run analysis on.
I would tag objects and then try to answer questions like, "Product XYZ has changed. Go find all instances of it in the cache and invalidate them." Even though I embedded that information in tags, it was slow and complicated to solve.
I also tried to introduce structures in AppFabric that managed AppFabric objects. Basically indexes of items. That too proved to be a bit difficult to manage.
I would look at something like Redis for caching as they seem to support some fun data structures out of the box beyond key/value.