个人技术分享

脚本逻辑:

  1. 取出队列所有元素
  2. 遍历元素查找值是否存在
  3. 不存在则推入
final String scriptText = """
            local valuesInTarget = redis.call('lrange', KEYS[1], 0, -1);
            local index = 0;
            for i, v in ipairs(valuesInTarget) do
                if v == value then
                    index = i
                    break
                end
            end
            if index == 0 then
                redis.call('rpush', KEYS[1], value);
            end
        """;
script.eval(
	RScript.Mode.READ_WRITE, 
	scriptText, 
	RScript.ReturnType.VALUE, 
	List.of(REDIS_KEY_TARGET) // 对应脚本中KEYS数组的元素
);