code: def get(self, key, timeout=1, is_async=False, only_read=True):
          
          if key not in self.cache_items:
              self.logger.debug('Cache item <%s> missing' % key)
              return None
  
          item = self.cache_items.pop(key)
          item.update_hit_count()
          if self.read_after_refresh_expire:
              item.refresh_expire(self.expire)
          value = item[key]
          self.cache_items[key] = item
          self.total_access_count += 1
          return value
docs: Test:
  
          >>> import time
          >>> cache = Cache(expire=2)
          >>> cache.put(key='a', value=0)
          >>> cache.put(key='b', value=1)
          >>> cache.put(key='c',value= 2)
          >>> cache.get('a')
          0
          >>> cache.get('b')
          1
          >>> cache.get('c')
          2
          >>> cache.get('e') == None
          True
          >>> time.sleep(2)
          >>> cache.put(key='e', value=4)
          >>> cache.get('a') == None
          True
          >>> cache.get('b') == None
          True
          >>> cache.get('c') == None
          True