Если вы не хотите использовать pubsub, есть много возможностей для творческих решений с операциями блокировки Redis (BLPOP, BRPOP, BRPOPLPUSH). Вы можете назначить соединение Redis на своем сервере для блокировки до тех пор, пока новый элемент не будет добавлен в список, и фактически добавить его в указанный список сразу после сохранения ключа (в multi exec!). Итак, что-то общее может выглядеть следующим образом (вы можете использовать два разных терминала для симуляции двух разных соединений):
Соединение 1 (после этого соединение будет зависать):
BRPOP myfunkeys 0
Соединение 2:
redis 127.0.0.1:6379> multi
OK
redis 127.0.0.1:6379> set somekey "foo"
QUEUED
redis 127.0.0.1:6379> rpush myfunkeys "somekey:foo"
QUEUED
redis 127.0.0.1:6379> exec
1) OK
2) (integer) 1
redis 127.0.0.1:6379>
Вернуться к соединению 1 после того, как вы EXEC:
1) "myfunkeys"
2) "somekey:foo"
(67.51s)