Hey there, I am currently digging more into redis and working on the improvement of redis cache backends as we have massive problems with flushes blocking our redis cluster.
As we are using a multi redis setup using redis sentinel I am currently improving the redis-sentinel package (https://github.com/flownative/flow-redis-sentinel/pulls). But most of these improvements as well as Ideas of @sebastian in https://github.com/sandstorm/OptimizedRedisCacheBackend should also fit into the default redis package.
In the OptimizedRedisCacheBackend, are some lines of code to also set a timeout for tags. In https://github.com/neos/flow-development-collection/pull/2052 @lars.lauger implemented a more sophisticated version which also handles write conflicts when recalculating the expiration times. But the PR was reverted as write conflicts happend even hough.
Now I have two questions:
- Why does this work in the OptimizedRedisCacheBackend but didn’t work in the standard package
- @lars.lauger did you thought about doing the recalculation entirely in a blocking lua script? Should that avoid the conflicts?