#![allow(dead_code)]
use bytes::Bytes;
use std::collections::HashMap;
use std::sync::atomic::{AtomicU64, Ordering};
use crate::cdn::backend::CacheBackend;
pub struct RedisBackend {
hits: AtomicU64,
misses: AtomicU64,
}
impl RedisBackend {
pub fn new(_redis_url: &str) -> Self {
Self {
hits: AtomicU64::new(0),
misses: AtomicU64::new(0),
}
}
}
#[async_trait::async_trait]
impl CacheBackend for RedisBackend {
async fn get(&self, _key: &str) -> Option<Bytes> {
self.misses.fetch_add(1, Ordering::Relaxed);
None
}
async fn put(&self, _key: &str, _data: Bytes) {
}
async fn purge(&self, _key: &str) {
}
async fn purge_prefix(&self, _prefix: &str) {
}
fn stats(&self) -> HashMap<&'static str, u64> {
let mut m = HashMap::new();
m.insert("hits", self.hits.load(Ordering::Relaxed));
m.insert("misses", self.misses.load(Ordering::Relaxed));
m
}
}