1. 问题

在使用RedisTemplate 保存Set类型的数据时候出现保存的key和value被序列化了,

public long sSet(String key, String... values) {
    try {
        return redisTemplate.opsForSet().add(key, values);
    } catch (Exception e) {
        LOGGER.error("异常={}", e);
        return 0;
    }
}

例如期望存入的key是 ai_dcs:gray🏫set,结果存入的

smembers"\xac\xed\x00\x05t\x00\x16ai_dcs:gray🏫set"
1)“\xac\xed\x00\x05t\x00\x131010000001000000004”
2)“\xac\xed\x00\x05t\x00\x131110000001000000660”
key被序列化了,value也被序列化了

解决办法

换成stringRedisTemplate 之后在不会出现类似 这样的 \xac\xed\x00\x05t 的序列化符号

public long sSet(String key, String... values) {
    try {
        return stringRedisTemplate.opsForSet().add(key, values);
    } catch (Exception e) {
        LOGGER.error("异常={}", e);
        return 0;
    }
}
12-05 03:44