前言

RedisTemplate和StringRedisTemplate

  • 二者主要区别是他们使用的序列化类不一样,RedisTemplate使用的是JdkSerializationRedisSerializer, StringRedisTemplate使用的是StringRedisSerializer,两者的数据是不共通的。

1.RedisTemplate:

  • RedisTemplate使用的是JDK的序列化策略,向Redis存入数据会将数据先序列化成字节数组然后在存入Redis数据库,这个时候打开Redis查看的时候,你会看到你的数据不是以可读的形式展现的,而是以字节数组显示,类似下面:\xAC\xED\x00\x05t\x05sr\x00。 所以使用RedisTemplate可以直接把一个java对象直接存储在redis里面,但是存进去的数据是不易直观的读的,不通用的,建议最好不要直接存一个Object对象,可以变成Hash来存储,也可以转成json格式的数据来存储,在实际应用中也是很多都采用json格式来存储的。

2.StringRedisTemplate:

  • StringRedisTemplate默认采用的是String的序列化策略,保存的key和value都是采用此策略序列化保存的。StringRedisTemplate是继承RedisTemplate的,这种对redis的操方式更优雅,因为RedisTemplate以字节数组的形式存储不利于管理,也不通用。

参考