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` в начале, и останавливают его в конце.
|
2022-03-31 14:40:40 +00:00
|
|
|
|
|
|
|
|
|
## Запуск 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)
|
|
|
|
|
```
|