29 lines
1.5 KiB
Markdown
29 lines
1.5 KiB
Markdown
# shopfront
|
||
|
||
В этой задаче вам нужно реализовать хранилище счётчиков посещений поверх redis.
|
||
|
||
- Метод `RecordView` запоминает, что пользователь посетил страницу `item`-а.
|
||
- Метод `GetItems` загружает счётчики для пачки `item` ов. В поле `item[i].Viewed` должен
|
||
быть записан флаг, означающий, что пользователь посетил `i`-ый `item`.
|
||
|
||
В этой задаче есть benchmark-и. Чтобы пройти его, ваше решение должно использовать [pipelining](https://redis.io/docs/manual/pipelining/).
|
||
|
||
## Запуск тестов на linux
|
||
|
||
Для работы тестов на ubuntu нужно установить пакет `redis-server`.
|
||
|
||
```
|
||
sudo apt install redis-server
|
||
```
|
||
|
||
Если вы работаете на другом дистрибутиве linux, воспользуйтесь своим пакетным менеджером.
|
||
|
||
Тесты сами запускают `redis` в начале, и останавливают его в конце.
|
||
|
||
## Запуск redis в docker
|
||
|
||
Комментарии по запуску бд в docker смотрите в задаче [dao](../dao/).
|
||
|
||
```
|
||
(cd shopfront && docker-compose up -d && sleep 1 && env REDIS="localhost:6379" go test -v ./... -count=1 || true && docker-compose down)
|
||
```
|