121 lines
3.9 KiB
Bash
Executable File
121 lines
3.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# Script to populate Redis with test data
|
|
|
|
# Set Redis port
|
|
REDIS_PORT=6378
|
|
|
|
# Function to check if Redis is running
|
|
check_redis() {
|
|
if ! redis-cli -p $REDIS_PORT PING &>/dev/null; then
|
|
echo "Error: Redis server is not running on port $REDIS_PORT"
|
|
echo "Please start the Redis server first"
|
|
exit 1
|
|
fi
|
|
echo "Redis server is running on port $REDIS_PORT"
|
|
}
|
|
|
|
# Function to populate string data
|
|
populate_strings() {
|
|
echo "Populating string data..."
|
|
|
|
# User data
|
|
redis-cli -p $REDIS_PORT SET user:1:name "John Doe"
|
|
redis-cli -p $REDIS_PORT SET user:1:email "john@example.com"
|
|
redis-cli -p $REDIS_PORT SET user:1:age "30"
|
|
|
|
# Set with expiration
|
|
redis-cli -p $REDIS_PORT SET user:1:session "abc123" EX 60
|
|
|
|
redis-cli -p $REDIS_PORT SET user:2:name "Jane Smith"
|
|
redis-cli -p $REDIS_PORT SET user:2:email "jane@example.com"
|
|
redis-cli -p $REDIS_PORT SET user:2:age "28"
|
|
|
|
# Product data
|
|
redis-cli -p $REDIS_PORT SET product:1:name "Laptop"
|
|
redis-cli -p $REDIS_PORT SET product:1:price "999.99"
|
|
redis-cli -p $REDIS_PORT SET product:1:stock "50"
|
|
|
|
redis-cli -p $REDIS_PORT SET product:2:name "Smartphone"
|
|
redis-cli -p $REDIS_PORT SET product:2:price "499.99"
|
|
redis-cli -p $REDIS_PORT SET product:2:stock "100"
|
|
|
|
# Configuration data
|
|
redis-cli -p $REDIS_PORT SET config:app:name "HeroLauncher"
|
|
redis-cli -p $REDIS_PORT SET config:app:version "1.0.0"
|
|
redis-cli -p $REDIS_PORT SET config:app:environment "development"
|
|
|
|
echo "String data population complete"
|
|
}
|
|
|
|
# Function to populate hash data
|
|
populate_hashes() {
|
|
echo "Populating hash data..."
|
|
|
|
# User profiles as hashes
|
|
redis-cli -p $REDIS_PORT HSET user:1 name "John Doe" email "john@example.com" age 30 role "admin" active "true"
|
|
redis-cli -p $REDIS_PORT HSET user:2 name "Jane Smith" email "jane@example.com" age 28 role "developer" active "true"
|
|
redis-cli -p $REDIS_PORT HSET user:3 name "Bob Johnson" email "bob@example.com" age 35 role "manager" active "false"
|
|
|
|
# Product details as hashes
|
|
redis-cli -p $REDIS_PORT HSET product:1 name "Laptop" price 999.99 stock 50 category "electronics" brand "TechBrand"
|
|
redis-cli -p $REDIS_PORT HSET product:2 name "Smartphone" price 499.99 stock 100 category "electronics" brand "PhoneCo"
|
|
redis-cli -p $REDIS_PORT HSET product:3 name "Headphones" price 149.99 stock 200 category "accessories" brand "AudioTech"
|
|
|
|
# Configuration settings as hashes
|
|
redis-cli -p $REDIS_PORT HSET config:app name "HeroLauncher" version "1.0.0" environment "development" debug "true"
|
|
redis-cli -p $REDIS_PORT HSET config:server host "localhost" port 9001 maxConnections 100 timeout 30
|
|
|
|
echo "Hash data population complete"
|
|
}
|
|
|
|
# Function to test Redis commands
|
|
test_commands() {
|
|
echo "Testing Redis commands..."
|
|
|
|
echo -e "\nTesting PING:"
|
|
redis-cli -p $REDIS_PORT PING
|
|
|
|
echo -e "\nTesting GET:"
|
|
redis-cli -p $REDIS_PORT GET user:1:name
|
|
|
|
echo -e "\nTesting HGET:"
|
|
redis-cli -p $REDIS_PORT HGET user:1 email
|
|
|
|
echo -e "\nTesting TYPE command:"
|
|
redis-cli -p $REDIS_PORT TYPE user:1:name
|
|
redis-cli -p $REDIS_PORT TYPE user:1
|
|
|
|
echo -e "\nTesting SCAN command:"
|
|
redis-cli -p $REDIS_PORT SCAN 0 MATCH user:* COUNT 5
|
|
|
|
echo -e "\nTesting TTL command:"
|
|
redis-cli -p $REDIS_PORT TTL user:1:name
|
|
redis-cli -p $REDIS_PORT TTL user:1:session
|
|
redis-cli -p $REDIS_PORT TTL nonexistent:key
|
|
|
|
echo -e "\nTesting EXPIRE command:"
|
|
redis-cli -p $REDIS_PORT EXPIRE user:1:name 120
|
|
redis-cli -p $REDIS_PORT TTL user:1:name
|
|
redis-cli -p $REDIS_PORT EXPIRE nonexistent:key 60
|
|
|
|
echo -e "\nTesting INFO command:"
|
|
redis-cli -p $REDIS_PORT INFO | head -n 20
|
|
|
|
echo -e "\nTesting KEYS command:"
|
|
redis-cli -p $REDIS_PORT KEYS user:*
|
|
|
|
echo "Command testing complete"
|
|
}
|
|
|
|
# Main execution
|
|
echo "Redis Data Population Script"
|
|
echo "==========================="
|
|
|
|
check_redis
|
|
populate_strings
|
|
populate_hashes
|
|
test_commands
|
|
|
|
echo "==========================="
|
|
echo "Redis population completed successfully!"
|