Redis 之 SessionCallback & RedisCallback 使用
redisTemplate直接调用opfor..来操作redis数据库,每执行一条命令是要重新拿一个连接,因此很耗资源,让一个连接直接执行多条语句的方法就是使用SessionCallback,同样作用的还有RedisCallback,但不常用。
·
redisTemplate直接调用 opsFor… 来操作redis数据库,每执行一条命令是要重新拿一个连接,很耗资源:
redisTemplate.opsForValue().set("key0", "value0");
redisTemplate.opsForHash().put("hash0", "field", "test");
SessionCallback & RedisCallback :在同一条连接下执行多个Redis命令。
RedisCallback
需要处理底层的转换规则,如果不考虑改写底层,尽量不使用它!
redisTemplate.execute(new RedisCallback() {
@Override
public Object doInRedis(RedisConnection redisConnection) throws DataAccessException {
redisConnection.set("key1".getBytes(), "value1".getBytes());
redisConnection.hSet("hash1".getBytes(), "field".getBytes(), "test".getBytes());
return null;
}
});
SessionCallback
高级接口,比较友好,一般情况下,优先使用它!
redisTemplate.execute(new SessionCallback() {
@Override
public Object execute(RedisOperations redisOperations) throws DataAccessException {
redisOperations.opsForValue().set("key2", "value2");
redisOperations.opsForHash().put("hash2", "field", "test");
return null;
}
});
更多推荐
已为社区贡献2条内容
所有评论(0)