Stopping a Redis server from the command line depends on how you started it. There are several methods, each suited to a different scenario. Let's explore the most common approaches and troubleshooting tips.
Method 1: Using the shutdown
Command (Most Common)
If you started Redis using the standard redis-server
command, the simplest and most reliable method is to use the SHUTDOWN
command within the Redis CLI. This gracefully shuts down the server, ensuring data persistence and preventing data loss.
Here's how:
-
Connect to the Redis server: Open your terminal or command prompt and connect to the Redis server using the
redis-cli
command. You might need to specify the host and port if it's not running on the default localhost:6379. For example:redis-cli -h <your_redis_host> -p <your_redis_port>
Replace
<your_redis_host>
with the hostname or IP address of your Redis server and<your_redis_port>
with the port number. -
Issue the
SHUTDOWN
command: Once connected, typeSHUTDOWN
and press Enter.SHUTDOWN
Redis will respond with a confirmation message, indicating a successful shutdown.
Important Note: This method requires that the Redis CLI has a connection to the server. If you can't connect (e.g., due to network issues or incorrect credentials), this method won't work.
Method 2: Using the Process ID (PID) (For Servers Started Without a Config File)
If you started Redis without a configuration file and you know the process ID (PID), you can use the kill
command to terminate it. Finding the PID typically involves using ps aux | grep redis-server
. The PID is the number in the second column.
-
Find the Redis server's PID:
ps aux | grep redis-server
-
Stop the Redis server using the kill command: Replace
<PID>
with the actual PID you found in the previous step.kill <PID>
For a forceful shutdown (use cautiously!), use
kill -9 <PID>
. However, this method can lead to data corruption if the server wasn't properly shut down gracefully. Always prefer theSHUTDOWN
command if possible.
Method 3: Using Systemd (For Servers Started as a Systemd Service)
Many Linux distributions manage Redis as a systemd service. If this is the case, you can use the following commands:
-
Stop the Redis service:
sudo systemctl stop redis
-
Check the service status:
sudo systemctl status redis
This will show you the current status of the Redis service, confirming whether it's stopped or not.
Method 4: Using Supervisor (If Using Supervisor to Manage Redis)
If you're using Supervisor to manage Redis, you should use Supervisor's commands to stop the process.
-
Stop the Redis process using Supervisor:
sudo supervisorctl stop redis ``` (Replace `redis` with the name of your Redis process in Supervisor's configuration)
-
Check the status:
sudo supervisorctl status redis
Troubleshooting Tips
- Check your Redis configuration file (
redis.conf
): If you're encountering issues, review yourredis.conf
file. Ensure that the port number and other settings are correct. - Firewall issues: Verify that your firewall isn't blocking access to the Redis port (usually 6379).
- Permissions: Ensure you have the necessary permissions to stop the Redis server. Using
sudo
might be required for some methods. - Multiple Redis instances: If you're running multiple Redis instances, you'll need to repeat the appropriate stop command for each instance.
By following these methods, you should be able to successfully stop your Redis server from the command line. Remember to always favor graceful shutdowns using the SHUTDOWN
command within the Redis CLI whenever possible to prevent data loss.