Spring Data Redis(StringRedisTemplate的使用)

String-focused convenience classes
使用限制String 类型的便利类

由于在使用Redis的时候普遍存在的情况是,以java.lang.String字符串的形式存储keys和values。Redis模块为RedisConnection 和RedisTemplate提供了两个相应的扩展,分别是StringRedisConnection(它的实现是DefaultStringRedisConnection) 和StringRedisTemplate,让集中的 String 操作更方便、一站式解决。此外在底层序列化转换方面使用了StringRedisSerializer ,使得存储的 keys和values 更容易让人可读(这里假设使用了通用的编码在Redis和代码上)。

properties配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:p="http://www.springframework.org/schema/p"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

  <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" p:use-pool="true"/>

  <bean id="stringRedisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate" p:connection-factory-ref="jedisConnectionFactory"/>
  ...
</beans>

示例代码如下:

public class Example {

  @Autowired
  private StringRedisTemplate redisTemplate;

  public void addLink(String userId, URL url) {
    redisTemplate.opsForList().leftPush(userId, url.toExternalForm());
  }
}

和其他的Spring的模版一样,RedisTemplate 和StringRedisTemplate允许开发者直接和Redis 进行交互,通过RedisCallback接口。这将给了开发者完全的控制权,在直接使用RedisConnection方面。注意,当使用StringRedisTemplate时,callback接收到的是一个StringR额滴神Connection实例。

public void useCallback() {

  redisTemplate.execute(new RedisCallback<Object>() {
    public Object doInRedis(RedisConnection connection) throws DataAccessException {
      Long size = connection.dbSize();
      // Can cast to StringRedisConnection if using a StringRedisTemplate
      ((StringRedisConnection)connection).set("key", "value");
    }
   });
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值