Mac(os x): Is there a way to install ONLY redis-cli?

I tried to run brew install redis-cli and googled, but found nothing. Any ideas?


Solution 1:

If you install redis with homebrew, you can see what's in the package like this:

brew install redis
brew ls redis

You will see that it only installs very few files indeed anyway:

/usr/local/Cellar/redis/3.2.3/bin/redis-benchmark
/usr/local/Cellar/redis/3.2.3/bin/redis-check-aof
/usr/local/Cellar/redis/3.2.3/bin/redis-check-rdb
/usr/local/Cellar/redis/3.2.3/bin/redis-cli
/usr/local/Cellar/redis/3.2.3/bin/redis-sentinel
/usr/local/Cellar/redis/3.2.3/bin/redis-server
/usr/local/Cellar/redis/3.2.3/homebrew.mxcl.redis.plist

Or, you can look directly in homebrew's Cellar, like this:

ls -lR /usr/local/Cellar/redis/3.2.3
total 40
-rw-r--r--  1 mark  admin  1487  2 Aug 10:00 COPYING
-rw-r--r--  1 mark  admin   376  9 Aug 10:34 INSTALL_RECEIPT.json
-rw-r--r--  1 mark  admin  6834  2 Aug 10:00 README.md
drwxr-xr-x  8 mark  admin   272  2 Aug 10:00 bin
-rw-r--r--  1 mark  admin   785  9 Aug 10:34 homebrew.mxcl.redis.plist

/usr/local/Cellar/redis/3.2.3/bin:
total 3440
-r-xr-xr-x  1 mark  admin   67668  2 Aug 10:00 redis-benchmark
-r-xr-xr-x  1 mark  admin   13936  2 Aug 10:00 redis-check-aof
-r-xr-xr-x  1 mark  admin  768704  2 Aug 10:00 redis-check-rdb
-r-xr-xr-x  1 mark  admin  129712  2 Aug 10:00 redis-cli
lrwxr-xr-x  1 mark  admin      12  2 Aug 10:00 redis-sentinel -> redis-server
-r-xr-xr-x  1 mark  admin  768704  2 Aug 10:00 redis-server

So, a lot of it is the licence, README and, of the 6 binaries, one is a symlink anyway. So it is not a heavy-weight installation with loads of services and config files anyway.


By the way, you could always pull and run the docker redis-cli without installing anything:

docker run -it redis redis-cli -h 192.168.0.8     # change to your Redis host's IP

If you actually just want to install the very least software you possibly can, you don't actually have to install anything! The Redis protocol is pretty simple, so you can build up a command in bash and send it yourself like this:

#!/bin/bash
################################################################################
# redis.sh
# Very, very simplistic Redis client in bash
# Mark Setchell
# Usage:
# redis.sh SET answer 42
#
# Ref: https://redis.io/topics/mass-insert
################################################################################
if [ $# -lt 2 ] ; then
    echo "Usage: redis.sh SET answer 42" >&2
    exit 1
fi

# Build protocol string
protocol="*$#\r\n"

for var in "$@" ; do
   protocol+="$" 
   protocol+="${#var}\r\n${var}\r\n"
done

# Send to Redis on default port on local host - but you can change it
printf "$protocol" > /dev/tcp/localhost/6379

Keywords: Redis, redis-cli, docker, minimal, pure bash.

Solution 2:

brew tap ringohub/redis-cli

brew update && brew doctor

brew install redis-cli

Solution 3:

This is not a proper installation of redis-cli, BUt I get my work done. I get it working using npm, I installed redis-cli a javascript library.

$ npm install -g redis-cli                  
    /Users/toni/.nvm/versions/node/v8.9.4/bin/rdcli -> /Users/toni/.nvm/versions/node/v8.9.4/lib/node_modules/redis-cli/bin/rdcli
    + [email protected]
    updated 1 package in 1.07s

then using the console:

$ rdcli                                 
127.0.0.1:6379> keys incident::sequence
1) incident::sequence
127.0.0.1:6379> GET incident::sequence
570
127.0.0.1:6379> config get dir
1) dir
2) /data
127.0.0.1:6379> exit

Solution 4:

I installed the redis-cli nodejs module:

yarn global add redis-cli

Then ran redis client:

rdcli

and redis client connected, redis REPL shell was activated