Som standard bruger RedisTemplate en JdkSerializationRedisSerializer, så hvis du lavede et "sæt" ville det få din Long til at se sådan ud i Redis:
"\xac\xed\x00\x05sr\x00\x0ejava.lang.Long;\x8b\xe4\x90\xcc\x8f#\xdf\x02\x00\x01J\x00\x05valuexr\x00\x10java.lang.Number\x86\xac\x95\x1d\x0b\x94\xe0\x8b\x02\x00\x00xp\x00\x00\x00\x00\x00\x00\x00\x04"
IncrBy virker, fordi Redis altid returnerer en Long fra den operation, så RedisTemplate forsøger ikke at deserialisere resultatet. Resultatet af "get" går dog igennem deserialiseringsprocessen, som forventer et format som ovenstående.
Du kan løse dette ved at bruge en anden værdi serializer på din RedisTemplate:
redisTemplate.setValueSerializer(new GenericToStringSerializer<Long>(Long.class));
Eller prøv RedisAtomicLong-klassen, der kommer med spring-data-redis.