1. run script using mariadb
sh compare_maria_redis.sh mariadb
2. run script using redis
sh compare_maria_redis.sh redis
3. try delete
delete from pembelian where kode_pembelian='BEL-E002';
4. run script using redis
sh compare_maria_redis.sh redis
5. run script using mariadb
sh compare_maria_redis.sh mariadb
6. run script using redis
sh compare_maria_redis.sh redis
7. try update
update pembelian set jumlah_pembelian='21' where kode_pembelian='BEL-E015';
sh compare_maria_redis.sh redis
9. run script using mariadb
sh compare_maria_redis.sh mariadb

10. run script using redis
sh compare_maria_redis.sh redis
11.if mariadb stop check redis
sh compare_maria_redis.sh redis
12. script
[root@teguhth redis]# cat compare_maria_redis.sh
#!/bin/bash
# MariaDB config
MYSQL_HOST="10.10.10.8"
MYSQL_PORT=3306
MYSQL_USER="admin"
MYSQL_PASS="admin"
MYSQL_DB="teguhth"
# Redis config
REDIS_HOST="127.0.0.1"
REDIS_PORT=6379
# Parameter
SOURCE=$1
if [ -z "$SOURCE" ]; then
echo "❌ Parameter tidak boleh kosong!"
exit 1
fi
if [ "$SOURCE" == "mariadb" ]; then
echo "๐ Mengambil data dari MariaDB dan menyimpan ke Redis..."
# ๐งน Hapus data usang dari Redis
echo "๐งน Mengecek dan menghapus data usang di Redis..."
redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" --scan --pattern "pembelian:*" | while read -r key
do
# Pecah key menjadi KODE_PEMBELIAN, KODE_BARANG, KODE_CUSTOMER
IFS=':' read -r _ kode_pembelian kode_barang kode_customer <<< "$key"
# Cek apakah data masih ada di MariaDB
exists=$(mysql -h "$MYSQL_HOST" -P "$MYSQL_PORT" -u "$MYSQL_USER" -p"$MYSQL_PASS" -D "$MYSQL_DB" -Nse "SELECT COUNT(*) FROM pembelian WHERE KODE_PEMBELIAN='$kode_pembelian' AND KODE_BARANG='$kode_barang' AND KODE_CUSTOMER='$kode_customer';")
if [ "$exists" -eq 0 ]; then
redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" DEL "$key" > /dev/null
echo "๐ Dihapus dari Redis (sudah tidak ada di MariaDB): $key"
fi
done
# Masukkan data baru dari MariaDB ke Redis
QUERY="SELECT KODE_PEMBELIAN, KODE_BARANG, KODE_CUSTOMER, TANGGAL_PEMBELIAN, JUMLAH_PEMBELIAN FROM pembelian;"
mysql -h "$MYSQL_HOST" -P "$MYSQL_PORT" -u "$MYSQL_USER" -p"$MYSQL_PASS" -D "$MYSQL_DB" -Bse "$QUERY" | while IFS=$'\t' read -r kode_pembelian kode_barang kode_customer tanggal jumlah
do
redis_key="pembelian:${kode_pembelian}:${kode_barang}:${kode_customer}"
redis_value="TANGGAL=$tanggal|JUMLAH=$jumlah"
redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" SET "$redis_key" "$redis_value"
echo "✅ Disimpan ke Redis → $redis_key → $redis_value"
done
echo "๐ Semua data pembelian selesai dimasukkan ke Redis!"
elif [ "$SOURCE" == "redis" ]; then
echo "๐ Mengambil semua kunci pembelian dari Redis (diurutkan)..."
# Tampilkan semua kunci pembelian dengan urutan alfanumerik
redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" --scan --pattern "pembelian:*" | sort | while read -r key
do
value=$(redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" GET "$key")
echo "๐ฆ $key → $value"
done
echo "๐ Semua data dari Redis sudah ditampilkan!"
else
echo "⚠ Gunakan perintah:"
echo "./compare_maria_redis.sh mariadb → ambil dari MariaDB, simpan ke Redis"
echo "./compare_maria_redis.sh redis → ambil dari Redis, tampilkan"
exit 1
fi
[root@teguhth redis]#
No comments:
Post a Comment