code: def fifo_for_evict(cache_dict, evict_number=1):
      
      ordered_dict = sorted(cache_dict.items(), key=lambda t: t[1]['birthday'])
      evicted_keys = []
      if len(cache_dict) < evict_number:
          evict_number = len(cache_dict)
      for i in range(evict_number):
          item = ordered_dict[i]
          key = item[0]
          cache_dict.pop(key)
          evicted_keys.append(key)
      return evicted_keys
docs: Use FIFO(First In First Out) strategy for evicting, it will find an item by earliest birthday date then remove it.
  
      Test:
      >>> from common_cache import CacheItem
      >>> dict = {}
      >>> dict['a'] = CacheItem(key='a', value=0, expire=5)
      >>> dict['b'] = CacheItem(key='b', value=1, expire=5)
      >>> dict['c'] = CacheItem(key='c', value=2, expire=5)
      >>> len(dict)
      3
      >>> evicted_keys = fifo_for_evict(dict, evict_number=2)
      >>> len(dict)
      1
      >>> len(evicted_keys)
      2
      >>> evicted_keys
      ['a', 'b']
      >>> evicted_keys = fifo_for_evict(dict, evict_number=10)
      >>> len(dict)
      0
      >>> len(evicted_keys)
      1