JimdbApRedis

May 19, 2026 · View on GitHub


类在继承体系中的位置:

[BaseDB](../base_db.md)
├── [BaseES](../db_es/base_es.md)
│   ├── [JesES](../db_es/jes_es.md)
│   ├── [LocalES](../db_es/local_es.md)
│   └── [MemoryEs](../db_es/memory_es.md)
├── [BaseRedis](../db_redis/base_redis.md)
│   ├── [LocalRedis](../db_redis/local_redis.md)
│   └── [JimdbApRedis](../db_redis/jimdb_ap_redis.md)
└── [BaseVectorDB](../db_vector/base_vector_db.md)
    └── [VearchDB](../db_vector/vearch_db.md)

简介

JimdbApRedis 实现了专为 JimDB(京东内部数据库)设计的 Redis 客户端,提供健壮的连接处理、自动重试以及带有大小限制和过期管理的增强列表操作。

参数

参数类型 / 允许值默认值描述
hoststr必须赋值Redis 服务器主机名或 IP。
portint必须赋值Redis 服务器端口。
passwordstr必须赋值认证密码。
redis_poolRedis | NoneNone连接池;通过 _get_redis_connection() 创建。
default_expire_timeint86400操作使用的默认 TTL(秒)。
default_list_max_sizeint1024列表操作的默认最大列表大小。

方法

方法协程 (async)返回值用途
__init__(host, port, password)None保存连接参数并创建 Redis 连接池。
_get_redis_connection(self)Redis构建 Redis 连接池(Redis.from_url)。
close(self)None关闭连接池并断开所有连接。
set(self, key, value, ex=86400)Optional[bool]设置带过期时间的键(默认 1 天)。
get(self, key)Optional[bytes]获取键的值。
exists(self, key)Optional[int]检查键是否存在。
mset(self, items, ex=None)Optional[bool]批量设置多个键(可选统一 TTL)。
mget(self, keys)Optional[list[Optional[bytes]]]批量获取多个键。
delete(self, key)Optional[int]删除一个键。
expire(self, key, ex)Optional[bool]设置键的 TTL;当 exNone 时返回 True
lpush(self, key, *values, ex=86400, max_size=1024, max_length=20240)int左推入并支持值截断、列表修剪和 TTL,使用 pipeline 执行。
rpop(self, key)Optional[bytes]弹出列表的最后一个元素。
brpop(self, key, timeout=1)Optional[bytes]为 JimDB 模拟的阻塞弹出(rpop、sleep、再 rpop)。
lrange(self, key, start=0, end=-1)Optional[list[bytes]]返回列表的一个切片(由于 lpush,顺序为 LIFO)。
lrem(self, key, count, value)Optional[int]移除等于 value 的元素。
lindex(self, key, index)Optional[bytes]通过索引获取列表元素。
llen(self, key)Optional[int]获取列表长度。
ltrim(self, key, start, end)Optional[bool]将列表修剪到指定范围。