first stab at caching multiple string and id funcs. also refactored them
added a get_all function to the redis cache backend. take advantage of the cache's get_all function if available (we may have cache types that do not support it)
small refactor