Re: Should I use caching or what?

Static variables are shared and thus they need to be thread-safe else you could have corruption of data whereas cache is thread-safe (at least the cache-collection is). Also, static variables will never go out of scope to you need to do memory management
whereas cache is cleared at specified times or when memory is low.

Cache involves serialization (and de-serialization) whereas static are pre-declared by data type they're going to hold (unless they're 'object').Cache offers features like invalidation callbacks, sliding or absolute expiration etc.Neither strategy scores
over each other in terms of performance but are implementation specific; you would be advised to do tests over each and go for the optimum. Obviously holding everything in the cache is not advisable either as that would effectively slow things down ultimately.

Memcached VS Redis

Redis is more powerful, more popular, and better supported than memcached. Memcached can only do a small fraction of the things Redis can do. Redis is better even where their features overlap.

If your application is small, I suggest you could choose Memcached.

If your application is large and you want to implement multiple feature, I suggest you could choose redis.

More details about the difference between redis and Memcached, you could refer to below answer.