<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def set(self, key: CacheKey, value: Optional[CacheValue]) -> None: r"""Create or update a cache. :param key: A key string to create or update. :type key: :const:`CacheKey` :param value: A value to cache. :const:`None` to remove cache. :type value: :class:`~typing.Optional`\ [:const:`CacheValue`] """

        raise NotImplementedError(
            'Concreate subclasses of {0.__module__}.{0.__qualname__} have to '
            'override .set() method'.format(CachePolicy)
        )