Optimized Lua script for Redis >= 6.2.0 #50
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The previous version of PLUCK_SCRIPT used the following Redis commands:
LRANGE --> Complexity: O(S+N) where S: the distance of start offset from HEAD and N: number of elements in the specified range
LTRIM --> Complexity: O(N)
SREM * N times --> Complexity: O(1) * N = O(N)
Number of commands used: 1 [ LRANGE ] + 1 [ LTRIM ] + N * 1 [ SREM ] = N + 2
Instead, the current version uses the following:
LPOP with count parameter --> Complexity: O(N)
SREM with list of keys --> Complexity: O(N)
Number of commands used: 1 [ LPOP ] + 1 [ SREM ]= 2