首页 > java > java spring redis SessionCallback RedisCallback多条命令一起执行

java spring redis SessionCallback RedisCallback多条命令一起执行

作者:bin

我们知道,例如下面这样2条命令,实际上会分别前后开启2个不同的链接去设置值

redisTemplate.opsForValue().set("key1", "value1");
redisTemplate.opsForValue().set("key2", "value2");


为了在一个redis链接中执行2条以上的命令,我们可以使用 SessionCallback 或者 RedisCallback
首先说SessionCallback,他比后者封装的更友好,实际开发中应当优先选择他:

redisTemplate.execute(new SessionCallback(){
   @Override
   public Object execute(RedisOperation ro) throw DataAccessException{
     ro,opsForValue().set("key1", "value1");
     ro,opsForValue().put("hash", "field", "hvalue1");
     return null;
   }
});

其次是RedisCallback,他更加底层,需要处理的内容也更多,可读性也更差

redisTemplate.execute(new RedisCallback() {
  @Override
  public Object doInRedis(RedisConnection rc) throw DataAccessException{
    rc.set("key1".getBytes(), "value1".getBytes());
    rc.hSet("hash".getBytes(), "field".getBytes(), "hvalue1".getBytest());
    return null
  }
});

您必须 [ 登录 ] 才能发表留言!