CacheClient: refactor and add api doc