In relational databases and their applications, there are opportunities for evaluating a stream of KNN queries submitted one by one at different times. For this issue, we propose a new method with learning-based techniques, region clustering methods and caching mechanisms. This method uses a knowledge base to store related information of some past KNN queries, groups the search regions of the past queries into larger regions, and retrieves the tuples from the larger regions. To answer a newly submitted query, our strategy tries to obtain a majority or all of the results from the previously retrieved tuples cached in main memory. Thus, this method seeks to minimize the response time by reducing the search region or avoiding the accesses to the underlying database. Meanwhile, our method remains effective for high-dimensional data. Extensive experiments are carried out to measure the performance of this new strategy and the results indicate that it is significantly better than the state-of-the-art naive methods of evaluating a stream of KNN queries for both low-dimensional (2, 3 and 4) and high-dimensional (25, 50 and 104) data.