Skip to main content

RedisBackend

Trait RedisBackend 

Source
pub trait RedisBackend: Send + Sync {
    // Required methods
    fn get(&self, key: &str) -> Result<Option<Vec<u8>>, CacheError>;
    fn set(&self, key: &str, value: Vec<u8>) -> Result<(), CacheError>;
    fn set_ex(
        &self,
        key: &str,
        value: Vec<u8>,
        ttl: Duration,
    ) -> Result<(), CacheError>;
    fn del(&self, key: &str) -> Result<i64, CacheError>;
    fn del_many(&self, keys: &[&str]) -> Result<i64, CacheError>;
    fn exists(&self, key: &str) -> Result<bool, CacheError>;
    fn incr_by(&self, key: &str, step: i64) -> Result<i64, CacheError>;
    fn decr_by(&self, key: &str, step: i64) -> Result<i64, CacheError>;
    fn flush_db(&self) -> Result<(), CacheError>;
    fn sadd(&self, key: &str, member: &str) -> Result<i64, CacheError>;
    fn smembers(&self, key: &str) -> Result<Vec<String>, CacheError>;
}
Expand description

Redis 后端 trait(抽象 Redis 命令)

由于 Rust 端不强制依赖 redis crate,本 trait 抽象 Redis 命令, 允许应用层注入真实 Redis backend(如 redis::Connection 包装)。

§默认实现

MockRedisBackendHashMap 模拟 Redis 行为,用于测试和开发环境。

§命令映射

Trait 方法Redis 命令PHP phpredis 调用
getGET$handler->get($key)
setSET$handler->set($key, $value)
set_exSETEX$handler->setex($key, $ttl, $v)
delDEL$handler->del($key)
del_manyDEL …$handler->del($keys)
existsEXISTS$handler->exists($key)
incr_byINCRBY$handler->incrby($key, $step)
decr_byDECRBY$handler->decrby($key, $step)
flush_dbFLUSHDB$handler->flushDB()
saddSADD$handler->sAdd($key, $value)
smembersSMEMBERS$handler->sMembers($key)

Required Methods§

Source

fn get(&self, key: &str) -> Result<Option<Vec<u8>>, CacheError>

GET 命令

Source

fn set(&self, key: &str, value: Vec<u8>) -> Result<(), CacheError>

SET 命令(无 TTL)

Source

fn set_ex( &self, key: &str, value: Vec<u8>, ttl: Duration, ) -> Result<(), CacheError>

SETEX 命令(带 TTL)

Source

fn del(&self, key: &str) -> Result<i64, CacheError>

DEL 命令(单个 key),返回删除数量

Source

fn del_many(&self, keys: &[&str]) -> Result<i64, CacheError>

DEL 命令(批量),返回删除数量

Source

fn exists(&self, key: &str) -> Result<bool, CacheError>

EXISTS 命令

Source

fn incr_by(&self, key: &str, step: i64) -> Result<i64, CacheError>

INCRBY 命令(key 不存在时 Redis 初始化为 0 再 INCRBY)

Source

fn decr_by(&self, key: &str, step: i64) -> Result<i64, CacheError>

DECRBY 命令

Source

fn flush_db(&self) -> Result<(), CacheError>

FLUSHDB 命令(清空当前 db)

Source

fn sadd(&self, key: &str, member: &str) -> Result<i64, CacheError>

SADD 命令(向 Set 添加成员)

Source

fn smembers(&self, key: &str) -> Result<Vec<String>, CacheError>

SMEMBERS 命令(返回 Set 全部成员)

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§