shad-go/lrucache
2020-03-27 22:50:35 +03:00
..
cache.go Adding lrucache task readme+solution+tests. 2020-03-12 12:32:51 +03:00
cache_test.go Add gc percent test in lrucache to prevent cheating 2020-03-27 22:50:35 +03:00
lru.go Adding lrucache task readme+solution+tests. 2020-03-12 12:32:51 +03:00
README.md Adding lrucache task readme+solution+tests. 2020-03-12 12:32:51 +03:00

lrucache

В этой задаче нужно написать простой Least recently used cache.

LRU cache - это key-value storage фиксированного размера, реализующий операции:

  • set(k, v) - обновляет хранимое по ключу k значение. В случае, если операция приводит к превышению размера кэша, из того удаляется значение по самому "старому" ключу.
  • get(k) -> v, ok - возвращает значение, хранимое по ключу k.

Обе функции set и get обновляют access time ключа.

В файле cache.go задан интерфейс Cache с подробным описанием всех методов.

Нужно написать реализацию и конструктор, принимающий размер кэша:

func New(cap int) Cache

Ссылки

  1. container/list: https://golang.org/pkg/container/list/
  2. wiki: https://en.wikipedia.org/wiki/Cache_replacement_policies#Least_recently_used_(LRU)