Complete task #71.

Current solution:
1. all the newly scanned result will be put in a memory cache, which
will be saved to database and disk when exit.
2. memory will be checked firstly when create UI element, then check
database.