Redis, PHP и SSE — зачем pub/sub если все работает?

Задался вопросом живых нотификаций, взял php либу для работы с редис, код клиента взял отсюда https://www.w3schools.com/html/html5_serversenteve...
Запускаю - сообщения с сервера приходят
Поменял значение ключа в Redis - пришло новое значение

1. Вопрос: часто в этой связке советуют использовать Redis pub/sub. Зачем? Ведь обновленные данные прилетают... Объясните на пальцах в чем преимущество использование pub/sub в связке с SSE. Возможно ли это на php? Можете кинуть живой пример кода? Я попробовал несколько библиотек с github, но как использовать pub/sub не понял(
2. Еще вопрос: не очень понял что такое channel в Redis. Открываю Redis DM - вижу ключ и значение. Channel не вижу.
3. И еще вопрос в догоночку: для того чтобы забрать данные по ключу для определенного пользователя, мне придется посмотреть на сессию пользователя в бд (планирую прикручивать к WP), как сделать так чтобы лишний раз не дергать MySQL?
  • Вопрос задан
  • 1987 просмотров
Решения вопроса 1
@Fixid
Redis по факту состоит из двух частей:
1. key-value хранилице
2. channel

Channel нельзя увидеть через Redis DM.
Канал появляется в момент pub/sub и существует пока там кто-то pub/sub.
Канал нужен для мгновенной массовой рассылки. Все sub подписанные на один и тот же канал мгновенно получают сообщение от pub. Сообщения нигде не хранятся, кто не получил, больше не получит его никогда, этакий UDP мессадж.
В данном режиме redis поддерживает столько клиентов, сколько вы можете себе позволить одновременных коннектов к серверу. При этом потребляя относительно мало ресурсов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы