added caching callback support (redis/memcached)