Redis is a special case of a message bus with Pub/Sub semantics. ZMQ, Azure, SNS, manual many-to-many connections could also implement channels.
Every actor instance could have an identity (could be just persisted GUID). A mailbox (F# actors style) could be implemented in the usual way (a queue inside an instance), but in Redis it could also be implemented and persisted separately for each actor instance by its ID (not only a shared queue for a virtual actor that potentially has many instances).
Less obvious thing is how to implement virtual actors on top of a message bus without a central node or a shared storage like Redis. One idea is to keep a list of all actor instance IDs for each virtual actor and round-robin or some other distribution algo. A combination of ZMQ pub/sub and fanout could work, with all NetMQ reliability goodies already done (watch out for LGPL plague if modified version is used!). Sad thing is that to get some kind of reliability in case of in instance dies, will have to reinvent a lot of wheels similar to Redis cluster, but in many cases Lazy Pirate (retry until success) or Fire and Forget patterns are good enough.
The main differences from RESTful services are the distributed nature, autodiscovery of worker instances, low latency and very light weight - this should all run from a single dll/exe with near-zero config and no admin privileges for http hosting. One single config is good, e.g. UDP port for service broadcast and actors discovery (ZMQ's beacon is just a special case, the discovery should also be hidden behind interfaces. E.g. in AWS there is no broadcast, but SNS replaces it.)
Orleans/MBrace is overkill for local use case (several processes on the same machine or LAN, many of them could be ephemeral short-lived). SignalR model is very good, but too many stuff that turns into garbage in any non-http case, while MSFT's bullshit with WebSockets-only-on-Win8 is why people hate the company. There could be much more work to throw away unneeded things from SignalR and implement TCP transport or embedded Katana-like hosting than to build a similar simpler model on top of ZMQ.
In addition to Post and PostAndGetReply also need Pub (post to all), Poll (post to all and get reply from all), PollN (Poll but return after N replies, not really needed, but Poll is likely a special case of PollN when implemented. But, how do we know the total number of instances!? Maybe Poll/PollN are both not needed, but only parallel PostAndGetReply.).