heroagent/scripts/redis_queue_test.sh
2025-04-23 04:18:28 +02:00

104 lines
3.0 KiB
Bash
Executable File

#!/bin/bash
# Redis Queue Test Script
# This script tests the Redis queue commands (LPUSH, RPUSH, LPOP, RPOP, LLEN, LRANGE)
echo "Redis Queue Test Script"
echo "======================="
# Check if Redis server is running
redis-cli -p 6378 PING > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo "Error: Redis server is not running on port 6378"
echo "Please start the server before running this script"
exit 1
fi
echo "Redis server is running on port 6378"
# Clear any existing test keys
redis-cli -p 6378 DEL test:queue > /dev/null
redis-cli -p 6378 DEL test:queue2 > /dev/null
# Test LPUSH and LLEN
echo -e "\nTesting LPUSH and LLEN:"
echo "Adding items to the queue from the left side..."
redis-cli -p 6378 LPUSH test:queue "item1"
redis-cli -p 6378 LPUSH test:queue "item2"
redis-cli -p 6378 LPUSH test:queue "item3"
echo "Queue length:"
redis-cli -p 6378 LLEN test:queue
# Test LRANGE
echo -e "\nTesting LRANGE:"
echo "Queue contents (all items):"
redis-cli -p 6378 LRANGE test:queue 0 -1
# Test RPUSH
echo -e "\nTesting RPUSH:"
echo "Adding items to the queue from the right side..."
redis-cli -p 6378 RPUSH test:queue "item4"
redis-cli -p 6378 RPUSH test:queue "item5"
echo "Queue length after RPUSH:"
redis-cli -p 6378 LLEN test:queue
echo "Queue contents after RPUSH:"
redis-cli -p 6378 LRANGE test:queue 0 -1
# Test LPOP
echo -e "\nTesting LPOP:"
echo "Removing item from the left side of the queue..."
echo "Popped item: $(redis-cli -p 6378 LPOP test:queue)"
echo "Queue length after LPOP:"
redis-cli -p 6378 LLEN test:queue
echo "Queue contents after LPOP:"
redis-cli -p 6378 LRANGE test:queue 0 -1
# Test RPOP
echo -e "\nTesting RPOP:"
echo "Removing item from the right side of the queue..."
echo "Popped item: $(redis-cli -p 6378 RPOP test:queue)"
echo "Queue length after RPOP:"
redis-cli -p 6378 LLEN test:queue
echo "Queue contents after RPOP:"
redis-cli -p 6378 LRANGE test:queue 0 -1
# Test queue as a FIFO (First In, First Out)
echo -e "\nTesting queue as FIFO (using RPUSH and LPOP):"
echo "Creating a new queue..."
redis-cli -p 6378 RPUSH test:queue2 "first"
redis-cli -p 6378 RPUSH test:queue2 "second"
redis-cli -p 6378 RPUSH test:queue2 "third"
echo "Queue contents:"
redis-cli -p 6378 LRANGE test:queue2 0 -1
echo "Dequeuing items in FIFO order:"
echo "First out: $(redis-cli -p 6378 LPOP test:queue2)"
echo "Second out: $(redis-cli -p 6378 LPOP test:queue2)"
echo "Third out: $(redis-cli -p 6378 LPOP test:queue2)"
# Test queue as a LIFO (Last In, First Out) / Stack
echo -e "\nTesting queue as LIFO/Stack (using LPUSH and LPOP):"
echo "Creating a new stack..."
redis-cli -p 6378 LPUSH test:queue2 "bottom"
redis-cli -p 6378 LPUSH test:queue2 "middle"
redis-cli -p 6378 LPUSH test:queue2 "top"
echo "Stack contents:"
redis-cli -p 6378 LRANGE test:queue2 0 -1
echo "Popping items from stack:"
echo "First out (top): $(redis-cli -p 6378 LPOP test:queue2)"
echo "Second out (middle): $(redis-cli -p 6378 LPOP test:queue2)"
echo "Third out (bottom): $(redis-cli -p 6378 LPOP test:queue2)"
echo -e "\nQueue tests completed successfully!"
echo "======================="