SkillAgentSearch skills...

Coredis

coredis is an async redis client for python with support for redis cluster, sentinel and popular redis modules

Install / Use

/learn @alisaifee/Coredis

README

docs codecov Latest Version in PyPI ci Supported Python versions

[!IMPORTANT] To learn about breaking changes and migration steps for version 6 please see Migrating from 5.x to 6.0.

If you are looking for the 5.x implementation, please refer to the 5.x branch.

coredis

Fast, async, fully-typed Redis client with support for cluster and sentinel

Features

Installation

$ pip install coredis

Getting started

Single node or cluster

import anyio
import coredis

async def main() -> None:
    client = coredis.Redis(host='127.0.0.1', port=6379, db=0, decode_responses=True)
    # or cluster
    # client = coredis.RedisCluster(startup_nodes=[coredis.connection.TCPLocation("127.0.0.1", 6379)], decode_responses=True)
    async with client:
        await client.flushdb()

        await client.set("foo", 1)
        assert await client.exists(["foo"]) == 1
        assert await client.incr("foo") == 2
        assert await client.expire("foo", 1)
        await anyio.sleep(0.1)
        assert await client.ttl("foo") == 1
        await anyio.sleep(1)
        assert not await client.exists(["foo"])

        async with client.pipeline() as pipeline:
            pipeline.incr("foo")
            value = pipeline.get("foo")
            pipeline.delete(["foo"])

        assert await value == "1"

anyio.run(main, backend="asyncio") # or trio

Sentinel

import anyio
import coredis

async def main() -> None:
    sentinel = coredis.Sentinel(sentinels=[("localhost", 26379)])
    async with sentinel:
        primary: coredis.Redis  = sentinel.primary_for("myservice")
        replica: coredis.Redis  = sentinel.replica_for("myservice")

        async with primary, replica:
            assert await primary.set("fubar", 1)
            assert int(await replica.get("fubar")) == 1

anyio.run(main, backend="asyncio") # or trio

Compatibility

To see a full list of supported Redis commands refer to the Command compatibility documentation. Details about supported Redis modules and their commands can be found here.

coredis is tested against redis versions >= 7.0 The test matrix status can be reviewed here

coredis is additionally tested against:

  • uvloop >= 0.15.0
  • trio

Supported python versions

  • 3.10
  • 3.11
  • 3.12
  • 3.13
  • 3.14
  • PyPy 3.10
  • PyPy 3.11

Redis API compatible databases

coredis is known to work with the following databases that have redis protocol compatibility:

References

Related Skills

View on GitHub
GitHub Stars108
CategoryCustomer
Updated16h ago
Forks21

Languages

Python

Security Score

100/100

Audited on Apr 5, 2026

No findings