redis回调会在redis中执行而不是在我的程序中执行吗?

g2ieeal7  于 2021-06-09  发布在  Redis
关注(0)|答案(2)|浏览(350)

例如,我有以下代码:

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集群中执行而不是在我的程序中执行吗?

cyvaqqii

cyvaqqii1#

不。 RedisTemplate 只是一个简化redis数据访问代码的springboot助手类,它仍然在线程中本地执行。
如果您的用例都与基本redis命令相关,那么您可以使用lua(这里的示例代码)。但是,列表操作中没有前缀过滤,所以您也可以尝试 CompletableFuture 因此,您的数据处理不会阻止其他操作。

ie3xauqp

ie3xauqp2#

你知道java代码不会在redis中运行。redis甚至不知道jvm,所以根本无法做到这一点。

相关问题