shad-go/lrucache/README.md
2020-03-12 12:32:51 +03:00

23 lines
1.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 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.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)