Several changes to the cache module to improve its usability

是的，这个版本允许小于0的counter