If you're looking for Pub-Sub, Kafka might be more scalable, persistent, and reliable at the cost of being maybe slightly slower and more difficult to setup.
Redis supports ACID transactions via Lua scripts, so it blocks across all redis instances for the duration of the Lua script. Laravel uses this to ensure queue jobs are worked on by exactly one queue worker.
Redis should not be your "source of truth" database unless you really understand what you're doing and can validate it meets your use-case. It's great for key-value store, cache, pub-sub, and queues.
Memcache is a good alternative for key-value store, sessions, and catching, although I don't know how it handles ram limitations differently than redis.
Beanstalkd is a good queues database, better than redis for this purpose (although the makers of redis are coming out with an add-on module built for queues: github.com/antirez/disque/issues/190 )