Can someone tell me what's the purpose of GenericAttributeService.cs
_cacheManager.RemoveByPattern(GENERICATTRIBUTE_PATTERN_KEY);?

This lines is present for Insert/Update/Delete attribute manipulation, what does it do?

When using Redis caching, this is creating a round trip of ~100ms on every call of "SaveAttribute()".

Is it necessary?
Can it be replaced or tweaked for better performance?
Why not using "Remove()" only with the attribute EntryId,GroupKey?

Thanks guys