例如,我有以下代码:
return (long) redisTemplate.execute(new RedisCallback() {
@Override
public Object doInRedis(RedisConnection connection) throws DataAccessException {
String redisKey = RedisKeyUtil.getDAUKey(df.format(start), df.format(end));
connection.bitOp(RedisStringCommands.BitOperation.OR,
redisKey.getBytes(), keyList.toArray(new byte[0][0]));
return connection.bitCount(redisKey.getBytes());
}
});
这个doinredis方法会在redis集群中执行而不是在我的程序中执行吗?
2条答案
按热度按时间cyvaqqii1#
不。
RedisTemplate
只是一个简化redis数据访问代码的springboot助手类,它仍然在线程中本地执行。如果您的用例都与基本redis命令相关,那么您可以使用lua(这里的示例代码)。但是,列表操作中没有前缀过滤,所以您也可以尝试
CompletableFuture
因此,您的数据处理不会阻止其他操作。ie3xauqp2#
你知道java代码不会在redis中运行。redis甚至不知道jvm,所以根本无法做到这一点。