  We consider a basic caching system, where a single server with a database of
$N$ files (e.g. movies) is connected to a set of $K$ users through a shared
bottleneck link. Each user has a local cache memory with a size of $M$ files.
The system operates in two phases: a placement phase, where each cache memory
is populated up to its size from the database, and a following delivery phase,
where each user requests a file from the database, and the server is
responsible for delivering the requested contents. The objective is to design
the two phases to minimize the load (peak or average) of the bottleneck link.
We characterize the rate-memory tradeoff of the above caching system within a
factor of $2.00884$ for both the peak rate and the average rate (under uniform
file popularity), improving state of the arts that are within a factor of $4$
and $4.7$ respectively. Moreover, in a practically important case where the
number of files ($N$) is large, we exactly characterize the tradeoff for
systems with no more than $5$ users, and characterize the tradeoff within a
factor of $2$ otherwise. To establish these results, we develop two new
converse bounds that improve over the state of the art.
