RedisConf previews changes to concurrency and access control
RedisConf 2019 previews threading and access control lists for Redis 6.0. The existing server and configuration show why those are separate engineering changes.
Redis has two different reasons to distinguish clients. One concerns the work required to move their requests and replies. The other concerns whether a client should be allowed to perform an operation. RedisConf's preview of threading and access control lists puts both questions on the Redis 6.0 agenda, but they affect different parts of the server contract.
The conference recap published on 4 April reports Salvatore Sanfilippo's preview of those plans. It is a report of upcoming work, not a stable Redis 6.0 release. The useful way to assess it now is to compare the announced direction with the server and configuration already available, without attributing a finished interface to the preview.
I have used Redis since its release and like its established command semantics. A concurrency change interests me most when its scope is clear. The word threading by itself does not explain whether the change concerns network work, command execution or another activity around the dataset.
Network work and command work are separate
The Redis 5.0.4 server implementation makes several stages visible. Its call function invokes the selected command procedure, measures duration and updates the associated accounting. The event-loop preparation separately handles pending client writes and flushes the append-only buffer. These activities all contribute to serving a request, but they do not perform the same work.
That distinction explains why a threading proposal needs more detail than a thread count. Moving bytes to a client and changing a value in the dataset have different synchronization requirements. A design can reconsider one stage without implying that arbitrary commands will execute concurrently against the same state. The April recap does not provide enough implementation detail to collapse those distinctions.
It also explains why a throughput improvement would depend on the work an application asks Redis to do. If network processing dominates, reducing that cost addresses a different limit from shortening a command's own computation. A request that spends most of its time inside an expensive operation does not have the same cost distribution as many small requests with substantial connection and reply overhead.
Those are consequences of separating the stages, not benchmark claims about an unreleased version. The recap establishes the direction of the preview. The existing source establishes that command invocation and client-output handling are identifiable activities. A specific performance multiplier would require evidence the recap does not supply.
The existing password setting has broad scope
The 5.0.4 configuration describes requirepass as requiring clients to authenticate before processing other commands. The setting provides a password requirement for access to the server. It does not describe named users with separate command and key permissions.
The same configuration documents command renaming. A command can receive a difficult-to-guess name or an empty name that disables it. This acts on the command's server-wide name. It does not express that one authenticated application may execute the command while a second application may not.
That gap gives the ACL preview a practical context. Applications sharing a Redis service can have different reasons to connect and different needs for administrative commands. A shared password establishes possession of one credential. An access-control design has to describe what an authenticated identity may do after establishing it.
I welcome that direction because access requirements belong in an explicit authorization model. Command renaming changes the interface every client sees. A permissions model can express a different kind of policy, although the April announcement alone does not specify the final rules or syntax that Redis 6.0 will offer.
Core plans and modules have different delivery paths
The conference also introduces module work, including RedisTimeSeries and RedisAI, and describes RedisGears as a framework for work across data models. Those announcements sit beside the Redis 6.0 preview, but they do not establish that every new capability will become a built-in server command in that release.
The distinction matters for deployment planning. A core release has one versioned server implementation. A separately loaded module has its own artifact and release status. Conference presentations can cover both together because they serve related applications, while an operator still needs to identify which software supplies a proposed command.
The recap's mention of a preview edition reinforces that delivery status belongs to each announcement. Availability of something to try is useful evidence about an implementation, but it is different from a completed stable release. That applies to both the core plans and the surrounding module demonstrations.
As of the recap, the concrete engineering questions are therefore well defined. The threading work needs to state which serving stages can run in parallel and how they interact with command execution. The ACL work needs to describe identities and permissions beyond the existing password gate. Those questions explain the value of the preview while keeping the account within what the April announcement actually establishes.