1. A method comprising: by a computing device, receiving a content object; by the computing device, storing content objects in a list; by the computing device, determining whether the list of the stored content objects is full, wherein the received content object is represented as a vector of elements and each of the stored content objects is represented as a vector of elements; by the computing device, identifying a corresponding node of a k-dimensional tree for each of the stored content objects and the received content object based on determining one or more median vectors from the vectors of the stored content objects, wherein: each node of the k-dimensional tree is configured to store the vector of a particular one of the stored content objects and the received content object; the k-dimensional tree comprises a top level comprising a root node configured to store information corresponding to a particular one of the median vectors, the particular one of the median vectors corresponding to a median content object of the stored content objects; and the k-dimensional tree comprises a second level comprising a plurality of leaf nodes; by the computing device, moving information corresponding to the vector of one or more of the stored content objects and the received content object from the list to the corresponding node of the k-dimensional tree; by the computing device, calculating a proximity measurement comprising a difference between a value of a first element of the vector of the received content object and a value of a first element of the particular one of the median vectors, wherein the vector of each node is representative of a cluster of content objects; by the computing device, identifying a particular one of the clusters of content objects based on the proximity measurement; and by the computing device, updating an entry of a cache corresponding to the identified cluster to include the received content object.