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