Skip to content

Improve connection speed by running fewer commands #2850

Open
@chayim

Description

@chayim

Today, connecting to a Redis instance, involves running multiple commands, and parsing the response repeatedly, this includes usage such as setinfo, which itself is run twice. The example below illustrates, that it's possible to pass all connection configuration information within a pipeline. In turn, the HELLO call returns the version of Redis, which could perhaps be used later for other things.

This is marked as good-first-issue not because it's necessarily easy to implement, inasmuch as it's a good entrypoint, to learning how connections to redis occur.

127.0.0.1:6379> multi
OK
127.0.0.1:6379(TX)> auth bob smurf
QUEUED
127.0.0.1:6379(TX)> select 5
QUEUED
127.0.0.1:6379[5](TX)> hello 3
QUEUED
127.0.0.1:6379[5](TX)> client setinfo lib-name predis
QUEUED
127.0.0.1:6379[5](TX)>  client setinfo lib-ver 55.5.0
QUEUED
127.0.0.1:6379[5](TX)> client tracking on optin
QUEUED
127.0.0.1:6379[5](TX)> CLIENT caching yes
QUEUED
127.0.0.1:6379[5](TX)> exec
1) OK
2) OK
3) 1# "server" => "redis"
   2# "version" => "7.2.3"
   3# "proto" => (integer) 3
   4# "id" => (integer) 26
   5# "mode" => "standalone"
   6# "role" => "master"
   7# "modules" => (empty array)
4) OK
5) OK
6) OK
7) OK
127.0.0.1:6379[5]> 

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions