Данный текст написан на языке 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 )