Redis lrange OutOfMemory错误

时间:2015-10-12 05:35:18

标签: java redis out-of-memory jedis

 Pipeline pipeline = jedis.pipelined();
        long len = jedis.llen(table);
        List<String> tableKeys = jedis.lrange(table, (long) 0, len);
        for (String key : tableKeys) {
            pipeline.del(key);
            pipeline.lrem(table, 1, key);
        }
        pipeline.sync();
        tableKeys.clear();

我遇到了一个问题,当密钥集很大时,我在jedis.llrange上出现内存不足错误。

有没有更好的方法来处理这个问题,可能是批量运行lrange还是管道化lrange?

我打算使用LUA脚本,只是想知道这是否有用

local result = redis.call('lrange',KEYS[1],0,ARGV[1]-1)
for i,k in ipairs(result) do
    redis.call(‘del’,k)
    redis.call('ltrim',KEYS[1],1,k)
end

0 个答案:

没有答案