shad-go/shopfront/README.md

30 lines
1.5 KiB
Markdown
Raw Normal View History

2022-03-31 13:21:18 +00:00
# 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)
```