You’re using transients wrong
Ryan McCue has written an insightful post about caching data in WordPress with the Transients API. Most interesting to me is how he describes expiration in transients as a “maximum age” versus a “guaranteed expiration”. He also makes a worthwhile point about how even when you store transients, it doesn't mean they won't be expired at unexpected times when you try to use the data. This is highly useful for developers that are using transients in their custom web projects and plugins, to make sure you're getting the most out of your efforts.