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