DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Please enter at least three characters to search
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

The software you build is only as secure as the code that powers it. Learn how malicious code creeps into your software supply chain.

Apache Cassandra combines the benefits of major NoSQL databases to support data management needs not covered by traditional RDBMS vendors.

Generative AI has transformed nearly every industry. How can you leverage GenAI to improve your productivity and efficiency?

Modernize your data layer. Learn how to design cloud-native database architectures to meet the evolving demands of AI and GenAI workloads.

Related

  • 5 Best Node.js Practices to Develop Scalable and Robust Applications
  • Google Action With Node.js
  • Building a Database Written in Node.js From the Ground Up
  • Alexa Skill With Node.js

Trending

  • The Human Side of Logs: What Unstructured Data Is Trying to Tell You
  • Dropwizard vs. Micronaut: Unpacking the Best Framework for Microservices
  • Kullback–Leibler Divergence: Theory, Applications, and Implications
  • Ensuring Configuration Consistency Across Global Data Centers
  1. DZone
  2. Coding
  3. JavaScript
  4. How to Get Redis-cli Without Installing Redis Server

How to Get Redis-cli Without Installing Redis Server

Explore how to get redis-cli without installing or having to make a full Redis server and look at some scenarios.

By 
Kyle Davis user avatar
Kyle Davis
·
Jan. 30, 19 · Tutorial
Likes (4)
Comment
Save
Tweet
Share
23.3K Views

Join the DZone community and get the full member experience.

Join For Free

I probably spend more time than most in  redis-cli because I find it invaluable when I'm writing software or getting to know a new module. If I didn't have  redis-cli , understanding Redis' data structures and testing connections would be far more complicated, and I probably would've stopped using Redis long ago.

Redis-cli  by itself isn't that complicated — it's a REPL (read-eval-print loop) that speaks to the Redis server. However, getting this jewel of a tool is not as straightforward for many. The source for redis-cli is included in the Redis GitHub repository and is automatically compiled when you build Redis from source. But what happens if you can't (or don't want to) build Redis from source? It means you also don't have redis-cli, and building an entire database from source just to get access to the command-line interface (CLI) utility is overkill and sometimes not even an option.

In this post, I'll share how to get redis-cli without installing or having to make a full Redis server. But first, let's look at a couple of scenarios.

Problem: Can't Build Redis From Source

For those of us on Linux or macOS, building Redis from source involves having the relevant compilers and tools on your system and running make, which produces both the CLI and the Redis server. For most developers on these platforms, that's not a huge burden.

However, if you're not on a unix-like system, things get complicated quickly. For various reasons, you can't just compile Redis on Windows. Microsoft once supported a fork of Redis that ran directly on Windows-based machines, but it's no longer maintained. That means that, on Windows, you can't get a current version of redis-cli. While it's possible to use the Windows Subsystem for Linux that can run Redis, this has its own challenges, such as file system limitations and just generally not feeling native or appropriate for the system. In addition, there are many developers who have development machines locked down in fun and creative ways to explicitly block this type of operation.

Finally, you might be in a situation where you're on a low-spec server and you just need to do some quick checks in Redis — getting the dependencies and building the software may not be possible in these constrained environments.

Problem: Don't Want to Build Redis From Source

There are many situations where you may be building software that uses Redis, but you'll never personally manage or administer even a localhost process of Redis. Imagine if you're using Redis Enterprise Cloud — you can have a Redis instance in seconds, but if you want to do anything with it, you need to have CLI, which requires building the whole package from source. Or perhaps you're at a large organization that is running a self-managed Redis Enterprise Software cluster. Here too, you may not have an actual need to build the Redis server on your development machine since you just want to connect up remotely.

Finally, you might want to get up and running quickly. Pulling down the entire Redis C project (and all the tools needed to build that) might not be efficient for your workflow.

If you fall in one of the above scenarios, read on.

Invoking Atwood's Law

In 2007, Jeff Atwood wrote, rather disparagingly:

"Any application that can be written in JavaScript will eventually be written in JavaScript."

Bringing this to Redis, Lu Jiajing started a small project (less than 250 lines of JavaScript!) in 2015 to reimplement the overall operation of redis-cli in Node.js. Since then, it's gotten closer to mimicking the Antirez-provided redis-cli. While not perfect (yet), it provides the bulk of the functionalities that you'd need on a day-to-day basis.

You may ask, why bother with this if you still have to install Node.js first? Well, first off, Node.js provides a much wider range of installation options than Redis. You can get it as a GUI msi for Windows or a pkg for macOS, as well as plain old compressed binaries for Windows, macOS or Linux, and you can also install Node.js via a package manager on many platforms.

Installing and Running Node.js Redis-cli

Once you've installed Node.js and npm, it's a simple one-liner to get and install the Node.js version of  redis-cli:

npm install -g redis-cli

Then you can run it with the command:

rdcli -h your.redis.host -a yourredispassword -p 11111

(using your relevant connection information).

Alternately, if you don't like global installs, you can clone the repository and install the dependencies:

git clone  https://github.com/lujiajing1126/redis-cli

cd redis-cli


npm install

Then, you can run it from this directory by invoking the index.js file directly with the command line arguments:

node index.js -h your.redis.host -a yourredispassword -p 11111 

(using your relevant connection information).

Redis-cli Without Building Redis

There you have it. You can get redis-cli up and running on your development machine quickly and easily with Node.js redis-cli written by Lu Jiajing. Instead of building the whole Redis project with C, you can just grab Node.js (even better if you already have it installed, and you probably do, let's be honest), install this small module and start hacking away in Redis.

Bonus

One cool little use of this module is to make it a part of devDependencies in your package.json on a Node.js project. This way, you can effectively "pack-in" redis-cli with your project, making sure everyone on your team has the tool. To do this, install it as a development dependency:

npm install -save-dev redis-cli

Then in your package.json, add the following line to the beginning of the scripts object:

"rediscli": "node ./node_modules/redis-cli/index.js",

Now, anyone who has your project can start redis-cli by running:

npm start rediscli -h your.redis.host -a yourredispassword -p 11111

(using your relevant connection information).

You can even hard code in arguments if need be, but never include your Redis password in your package.json file!

Redis (company) Node.js Command-line interface File system

Published at DZone with permission of Kyle Davis, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • 5 Best Node.js Practices to Develop Scalable and Robust Applications
  • Google Action With Node.js
  • Building a Database Written in Node.js From the Ground Up
  • Alexa Skill With Node.js

Partner Resources

×

Comments
Oops! Something Went Wrong

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends:

Likes
There are no likes...yet! 👀
Be the first to like this post!
It looks like you're not logged in.
Sign in to see who liked this post!