Skip to content

Instantly share code, notes, and snippets.

@phcostabh
Last active January 3, 2016 08:59
Show Gist options
  • Save phcostabh/8440204 to your computer and use it in GitHub Desktop.
Save phcostabh/8440204 to your computer and use it in GitHub Desktop.
#!/bin/bash
# Limpa dummy data do Redis.
redis-cli keys 'hits*' | cut -d" " -f2 | xargs redis-cli del
declare -A ARTISTS
ARTISTS=(
["avicci"]="hey-brother"
["lorde"]="royals"
["daft-punk"]="get-lucky"
["miley-cyrus"]="wrecking-ball"
)
for site in musicas lyrics; do
# Gera dados pra teste
for i in {0..7}; do
day=$(date -d "-$i days" +"%Y-%m-%d")
timestamp="$(date +%s)"
cloneskey="hits:clones:$day"
# Grava alguns dummy hits para cada artista/musica pra o $day
for artist in "${!ARTISTS[@]}"; do
key="$site:$artist:${ARTISTS[$artist]}:$day"
redis-cli sadd "$key" "$timestamp" &> /dev/null
# Grava a chave de clones no Redis (Gerada pelo Nginx)
redis-cli sadd "$cloneskey" "$key" &> /dev/null
done
dailykeys=$(redis-cli smembers "$cloneskey" | cut -d" " -f2)
for k in $dailykeys; do
hits=$(redis-cli scard $k | cut -d" " -f2)
clone=$(echo "$k" | cut -d":" -f1)
dns=$(echo "$k" | cut -d":" -f2)
url=$(echo "$k" | cut -d":" -f3)
# Removendo a chave
redis-cli del $k &> /dev/null
# Chaves do sorted sets diários.
dailyhits_artists="hits:$clone:daily:artists:$day";
dailyhits_songs="hits:$clone:daily:songs:$day";
set_daily_artists="hits:daily:artists:$day";
set_daily_songs="hits:daily:songs:$day";
# Gerando sorted sets diários.
redis-cli zincrby "$dailyhits_artists" "$hits" "$dns" &> /dev/null
redis-cli zincrby "$dailyhits_songs" "$hits" "$dns:$url" &> /dev/null
redis-cli sadd "$set_daily_artists" "$dailyhits_artists" &> /dev/null
redis-cli sadd "$set_daily_songs" "$dailyhits_songs" &> /dev/null
done
done
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment