sql >> データベース >  >> NoSQL >> Redis

spring-data-redisredisTemplate例外

    デフォルトでは、RedisTemplateはJdkSerializationRedisSerializerを使用するため、「設定」を行うと、RedisでLongが次のようになります。

    "\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が機能するのは、Redisが常にその操作からLongを返すため、RedisTemplateは結果を逆シリアル化しようとしないためです。ただし、「get」の結果は、上記のような形式を想定した逆シリアル化プロセスを通過します。

    これは、RedisTemplateで別の値のシリアライザーを使用することで解決できます:

    redisTemplate.setValueSerializer(new GenericToStringSerializer<Long>(Long.class));
    

    または、spring-data-redisに付属しているRedisAtomicLongクラスを試してください。



    1. 任意の深さでMongoDBフィールド名を見つける方法

    2. Django、Redis:接続コードを配置する場所

    3. MongoDBとMongooseの使用を開始する

    4. MongoDBでGridFSを使用するのはいつですか?