How big is the "small out of data"? How many sets of data will be in use at any given time? Do you have to worry about different instances of the script overwriting each other's cache or not? You can undoubtedly write yourself a custom cache routine that will be more efficient than Cache::FastMmap or Cache::FileCache, but methodology is hard to suggest without knowing more specifics.