The main reason to use background workers is so the main thread is not tied up with running the task. Using Resque, it allows tasks to be executed outside the main thread. This is good for many reasons. The biggest is that slow operations do not cause the main thread to hang, blocking out all functionality until the request is done.
Redis to Go is just a remote Redis database. In your main thread, you do an operation where you modify 500 keys. On a local database, that would take no time at all, but unless you use a multi command, you have to send each command to the server and wait for the response. Ok, no big deal if its a few commands, but it will take a noticeable amount of time to do that 500 times on a remote server. Here is some example numbers. It takes 5ms to do the operation locally. Here, using Resque is not needed, as the jobs are executed quickly and locally. Now, using Redis to Go, we have to go outside the LAN. Now, each operation takes 5ms (0.005 seconds). And if we were doing 500 of them, .005*500 is 2.5 seconds. Now, that is 2.5 seconds that are being used to query the database, and your main thread is locked until the requests are done. (Note, those numbers are totally random... They could be higher or lower)
Now, with Resque, those operations are done in the background. When your main thread executes, it will add the jobs to Resque. And the the main thread will execute. Resque will now execute the commands in the order they are received. Now, the execution might take 2.5 seconds, but those 2.5 seconds are not holding up the main thread.