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;
}
});

版权声明:本文为qq_37933128原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。