sql >> Database teknologi >  >> NoSQL >> Redis

spring-data-redis redisTemplate Undtagelse

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.



  1. Hvad er MongoDB, og hvordan virker det?

  2. Få en tydelig aggregering af et matrixfelt på tværs af indekser

  3. Brug Mongosniff til at afklare, hvad din MongoDB hører og siger

  4. MongoDB $lte Aggregation Pipeline Operator