Possible race condition here with line 38.  Imagine two threads are updating the same day.  They both can enter the block and update the counter.  The counter gets increased twice for the same day.  Should either lock on the Redis side or use zsetOps.add() to read and set the score directly.  Setting the score directly may have the consequence of stale data but is correct (whereas double-counting is incorrect) and is acceptable.