xacxedx 00x 05 tx 00x 02 SpringBootでredisを操作すると、keyが前の文字列より多くなっていることがわかります
1403 ワード
SpringBootでredisを操作すると、keyはxacxedx 00x 05 tx 00x 02プレフィックスが多くなっていることがわかりました.理由:我々が注入したRedisTemplateはRedisを操作する際にJdkSerializationRedisSerializerを用いてデータをシーケンス化しました
上記のコードに示すように、我々のkeyに対してJ d k S e rializationRedisSerializerシーケンス化操作を行ったので、我々のkeyの前にxacxedx 00x 05 tx 00x 02 k 1という文字解決方法が現れた:注入したRedisTemplateをStringRedisTemplate注入に変更すれば完了する
原理:StringRedisTemplateはRedisSerializerを採用した.string()メソッド、バイナリデータを文字列に変換
this.defaultSerializer = new JdkSerializationRedisSerializer(this.classLoader != null ? this.classLoader : this.getClass().getClassLoader());
@Nullable
private RedisSerializer> defaultSerializer;
@Nullable
private ClassLoader classLoader;
@Nullable
private RedisSerializer keySerializer = null;
@Nullable
private RedisSerializer valueSerializer = null;
@Nullable
private RedisSerializer hashKeySerializer = null;
@Nullable
private RedisSerializer hashValueSerializer = null;
上記のコードに示すように、我々のkeyに対してJ d k S e rializationRedisSerializerシーケンス化操作を行ったので、我々のkeyの前にxacxedx 00x 05 tx 00x 02 k 1という文字解決方法が現れた:注入したRedisTemplateをStringRedisTemplate注入に変更すれば完了する
@Autowired
private StringRedisTemplate redisTemplate;
原理:StringRedisTemplateはRedisSerializerを採用した.string()メソッド、バイナリデータを文字列に変換
public class StringRedisTemplate extends RedisTemplate {
public StringRedisTemplate() {
this.setKeySerializer(RedisSerializer.string());
this.setValueSerializer(RedisSerializer.string());
this.setHashKeySerializer(RedisSerializer.string());
this.setHashValueSerializer(RedisSerializer.string());
}