Correct use-case for redis

I am totally new to noSQL and have only really dabbled with SQL. However I can clearly see that noSQL is going to be a better fit for my applications data as it doesn't fit the traditional table model.

However I am worried that I am going to invest time in implementing and understanding a solution that will later turn out to be the incorrect fit for my application and not work how I assumed it would.

I am leaning towards redis - despite not understanding a lot of what I have read about it. I need to know if it is capable of what I want it to do, whether it is a good choice for what I want to do and whether there is anything useful I should know before venturing out with it or that will streamline my process. My application is written in javaScript and powered by node.js.

Here is what I need from my database:

Fast storage of real-time data, I want to store every action the user makes as they make it. Considering my application requires a high level of user engagement this will be a constant stream of information. I have read redis is an exceptionally fast in-memory database.

Reliability - This is an area I hear redis has weaknesses, and people say that it's persistence should not be used for sensitive data. Is it possible to reliably unload a user's data to the disk and reload it when they next return? Would such an operation be fast or slow (I understand this is dependant on the data - but would you personally perform such an operation as I have no idea what to expect?) - perhaps it would be better to store the redis information in an SQL database once the user has finished modifying it?

Expanding on the reliability case, say I have the following key:

user:id:appData

Is it possible to delete everything in user:1:appData without affecting user:2:appData or any other user:id:appData?

Concurrency - Can redis handle many user's writing to it at the same time? How about querying?

Thank you for your time.