Skip to content

Latest commit

 

History

History
 
 

lrucache

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

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

Замечания

  • При создании хеш-таблицы в go можно указывать capacity.
  • Алгоритм LRU описан на wiki
  • Для списка можно использовать container/list