macosredis

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

  • 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 --rm -it redis:alpine 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