code: def set(self, request_url, response_json):
          
          if self.size() == self._max_size:
              popped = self._usage_recency.pop()
              del self._table[popped]
          current_time = timeutils.now('unix')
          if request_url not in self._table:
              self._table[request_url] = {'data': response_json,
                                          'insertion_time': current_time}
              self._usage_recency.add(request_url)
          else:
              self._table[request_url]['insertion_time'] = current_time
              self._promote(request_url)
docs: Checks if the maximum size of the cache has been reached and in case
          discards the least recently used item from 'usage_recency' and 'table';
          then adds the response_json to be cached to the 'table' dict using as
          a lookup key the request_url of the request that generated the value;
          finally adds it at the front of 'usage_recency'
  
          :param request_url: the request URL that uniquely identifies the
              request whose response is to be cached
          :type request_url: str
          :param response_json: the response JSON to be cached
          :type response_json: str