redis compression (#6769)

* feat(labrinth): encode/decode redis values with postcard, add version in namespaces

* chore(labrinth): split cache ex special cases without version

* chore(labrinth): simplify get_many

* fix: tombi

* feat(labrinth): compression support

* chore(labrinth): cleanup redis ser/de

* fix(labrinth): use get_deserialized in tests
This commit is contained in:
François-Xavier Talbot
2026-07-19 01:25:00 +02:00
committed by GitHub
parent 6b62e3b480
commit 6b569e4ee4
40 changed files with 361 additions and 242 deletions
+5 -10
View File
@@ -11,9 +11,9 @@ use serde::{Deserialize, Serialize};
use std::fmt::{Debug, Display};
use std::hash::Hash;
const PATS_NAMESPACE: &str = "pats";
const PATS_TOKENS_NAMESPACE: &str = "pats_tokens";
const PATS_USERS_NAMESPACE: &str = "pats_users";
const PATS_NAMESPACE: &str = "pats:v1";
const PATS_TOKENS_NAMESPACE: &str = "pats_tokens:v1";
const PATS_USERS_NAMESPACE: &str = "pats_users:v1";
#[derive(Deserialize, Serialize, Clone, Debug)]
pub struct DBPersonalAccessToken {
@@ -161,7 +161,7 @@ impl DBPersonalAccessToken {
let mut redis = redis.connect().await?;
let res = redis
.get_deserialized_from_json::<Vec<i64>>(
.get_deserialized::<Vec<i64>>(
PATS_USERS_NAMESPACE,
&user_id.0.to_string(),
)
@@ -189,12 +189,7 @@ impl DBPersonalAccessToken {
let mut redis = redis.connect().await?;
redis
.set(
PATS_USERS_NAMESPACE,
&user_id.0.to_string(),
&serde_json::to_string(&db_pats)?,
None,
)
.set_serialized(PATS_USERS_NAMESPACE, user_id.0, &db_pats, None)
.await?;
Ok(db_pats)
}