Last active
January 3, 2016 08:59
-
-
Save phcostabh/8440204 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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