我正在尝试使用redis位图保存在线用户,使用命令“bitcount onlineUser”来计算在线用户的数量。我使用RedisTemplate处理redis。但是我在RedisTemplate中找不到任何API来执行命令“bitcount”。如何在Java中执行命令“bitcount”呢?我们将提供任何帮助。

 @Override
    public Boolean saveOnlineUser(Long userId) {
        ValueOperations<String,Object> ops = redisTemplate.opsForValue();
        return ops.setBit("onlineUser",userId,true);
    }

    @Override
    public Integer getOnlineUser() {
        //I want to use Redis command "bitcount 'onlineUser'" here to count the number of online users
        return redisTemplate.opsForValue().;
    }

最佳答案

您可以使用RedisTemplate的“execute”方法,例如:

public Long bitcount(final String key, final long start, final long end) {
    return redisTemplate.execute(new RedisCallback<Long>() {

        @Override
        public Long doInRedis(RedisConnection redisConnection) throws DataAccessException {

            return redisConnection.bitCount(key.getBytes(), start, end);
        }
    });
}

关于java - 如何在Java中使用Redis命令 “bitcount”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60409641/

10-10 09:30