1. 程式人生 > >Spring Data Redis入門示例:基於RedisTemplate (三)

Spring Data Redis入門示例:基於RedisTemplate (三)

gem per 例子 基於 接口 image 安全 redist 工作

使用底層API:RedisConnection操作Redis,需要對數據進行手動轉換(String <---->byte),需要進行多數重復性工作,效率低下;org.springframework.data.redis.core.RedisTemplate 類提供了與Redis交互的高級抽象,該類負責序列化和連接管理,對大多數重復性工作進行了封裝。並且 RedisTemplate是一個線程安全的類。

此外,模板還提供了用於處理特定類型或特定鍵的操作視圖。包含的接口見下表:

技術分享圖片

例子:上一節第三步的配置文件添加下面內容:

 <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
     <property name="connectionFactory" ref="jedisConnectionFactory"/>
</bean>

測試RedisTemplate:

// RedisTemplate 操作
RedisTemplate redisTemplate = context.getBean(RedisTemplate.class);
    
// 獲取String類型的操作類
ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
valueOperations.set("haha", "你好");
System.out.println(valueOperations.get("haha"));

優化:
上面的例子,當需要操作某種類型時,就從RedisTemplate

模板類中獲取對應操作類的引用,這一步是重復的,可以通過Spring DI 進行註入,可以省下一行代碼,代碼如下

@Autowired
private RedisTemplate template;

@Resource(name = "redisTemplate")
private ValueOperations valueOps;

示例說明

1. RedisTemplate是一個泛型類,可以指定key和value的類型
2. 想操作Redis的哪種類型數據,從RedisTemplate 獲取對應操作的引用,如上面的valueOperations 
3. 使用RedisTemplate,沒有了底層API將數據轉byte的操作

Spring Data Redis入門示例:基於RedisTemplate (三)