使用底层API:RedisConnection
操作Redis,需要对数据进行手动转换(String <---->byte
),需要进行多数重复性工作,效率低下;org.springframework.data.redis.core.RedisTemplate
类提供了与Redis交互的高级抽象,该类负责序列化和连接管理,对大多数重复性工作进行了封装。并且 RedisTemplate
是一个线程安全的类。
此外,模板还提供了用于处理特定类型或特定键的操作视图。包含的接口见下表:
例子:第三步的配置文件添加下面内容:
测试RedisTemplate:
// RedisTemplate 操作RedisTemplate redisTemplate = context.getBean(RedisTemplate.class); // 获取String类型的操作类ValueOperationsvalueOperations = redisTemplate.opsForValue();valueOperations.set("haha", "你好");System.out.println(valueOperations.get("haha"));
优化:
上面的例子,当需要操作某种类型时,就从RedisTemplate
模板类中获取对应操作类的引用,这一步是重复的,可以通过Spring DI
进行注入,可以省下一行代码,代码如下 @Autowiredprivate RedisTemplate template;@Resource(name = "redisTemplate")private ValueOperations valueOps;
示例说明
1. RedisTemplate是一个泛型类,可以指定key和value的类型2. 想操作Redis的哪种类型数据,从RedisTemplate 获取对应操作的引用,如上面的valueOperations 3. 使用RedisTemplate,没有了底层API将数据转byte的操作