1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-gcache

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Данный текст написан на языке Go.

Интерфейс GCache

Координирует заполнение кэша таким образом, что только одна загрузка в одном процессе из всего реплицированного набора процессов заполняет кэш, затем мультиплексирует загруженное значение всем вызывающим сторонам.

func main() {
  // Пример использования интерфейса
  gc := New(interface{}) (interface{}, error) {
      return "value", nil
    }).
    Build()
  v, _ := gc.Get("key")
  fmt.Println(v)
}

Вывод: «value».

Истекающий кэш

func main() {
  // Кэш LRU, размер: 10, срок действия: через час
  gc := gcache.New(10).
    LRU().
    Expiration(time.Hour).
    Build()
}

Обработчики событий

Выселенный обработчик

Обработчик события для выселения записи.

func main() {
  gc := gcache.New(2).
    EvictedFunc(func(key, value interface{}) {
      fmt.Println("высеченный ключ:", key)
    }).
    Build()
  for i := 0; i < 3; i++ {
    gc.Set(i, i*i)
  }
}

Вывод:

высеченный ключ: 0

Добавленный обработчик

Обработчик события для добавления записи.

func main() {
  gc := gcache.New(2).
    AddedFunc(func(key, value interface{}) {
      fmt.Println("добавленный ключ:", key)
    }).
    Build()
  for i := 0; i < 3; i++ {
    gc.Set(i, i*i)
  }
}

Вывод:

добавленный ключ: 0,

добавленный ключ: 1,

добавленный ключ: 2.

Автор

Дзюн Кимура

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Библиотека кэша для golang. Она поддерживает кэши с ограниченным сроком действия, LFU, LRU и ARC. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-gcache.git
git@api.gitlife.ru:oschina-mirror/mirrors-gcache.git
oschina-mirror
mirrors-gcache
mirrors-gcache
master