Redis 操作的选择上,StringRedisTemplateRedisTemplate各有玩法。如果你只是简单存取字符串,用前者就挺顺手,省心省事;但遇到对象序列化、复杂结构,RedisTemplate才是你的好搭档。关键还是看场景,用哪个都不亏。

直接用StringRedisTemplate,就像在纯文本数据,操作挺直接,像这样:

stringRedisTemplate.opsForValue().set("name", "Tom");
String name = stringRedisTemplate.opsForValue().get("name");

但你要是想存个自定义对象,那就得上RedisTemplate,还得配上序列化器,不然就只能看着乱码发呆了:

redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(User.class));
User user = new User("Tom", 25);
redisTemplate.opsForValue().set("user:1", user);
User result = redisTemplate.opsForValue().get("user:1");

两个模板底层都是操作 Redis 的,但StringRedisTemplate默认用StringRedisSerializer来键值,对字符串友好;而RedisTemplate更灵活,可以自己定制序列化规则,适合做复杂结构。

哦对了,别忘了看下Redis 实践指南及代码示例,里面的例子还蛮实用的,多业务场景你都能用得上。

如果你主要是做一些配置、缓存参数类的键值存储,StringRedisTemplate够用;但涉及复杂对象传输,还是老老实实配置好RedisTemplate吧。