Built-in LRU memory cache provider

Built-in LRU memory cache provider

  1. Global Cache

Xorm implements cache support. Defaultly, it’s disabled. If enable it, use below code.

  1. cacher := caches.NewLRUCacher(caches.NewMemoryStore(), 1000)
  2. engine.SetDefaultCacher(cacher)

If disable some tables’ cache, then:

  1. engine.MapCacher(&user, nil)
  1. Table’s Cache If only some tables need cache, then:
  1. cacher := caches.NewLRUCacher(caches.NewMemoryStore(), 1000)
  2. engine.MapCacher(&user, cacher)

Caution:

  1. When use Cols methods on cache enabled, the system still return all the columns.

  2. When using Exec method, you should clear cache:

  1. engine.Exec("update user set name = ? where id = ?", "xlw", 1)
  2. engine.ClearCache(new(User))

Cache implement theory below:

cache design

cache design