Skip to main content

Python async client for Redis key-value store

Project description

coredis

docs codecov Latest Version in PyPI ci Supported Python versions


coredis is an async redis client with support for redis server, cluster & sentinel.

  • The client API uses the specifications in the Redis command documentation to define the API by using the following conventions:

    • Arguments retain naming from redis as much as possible
    • Only optional variadic arguments are mapped to variadic positional or keyword arguments. When the variable length arguments are not optional (which is almost always the case) the expected argument is an iterable of type Parameters or Mapping.
    • Pure tokens used as flags are mapped to boolean arguments
    • One of arguments accepting pure tokens are collapsed and accept a PureToken
  • Responses are mapped as closely from RESP <-> python types as possible.

  • For higher level concepts such as Pipelines, LUA Scripts, PubSub & Streams abstractions are provided to simplify interaction requires pre-defined sequencing of redis commands (see Command Wrappers) and the Handbook.

Warning The command API does NOT mirror the official python redis client. For details about the high level differences refer to Divergence from aredis & redis-py


Installation

To install coredis:

$ pip install coredis

Feature Summary

Deployment topologies

Application patterns

Server side scripting

Miscellaneous

Quick start

Single Node or Cluster client

import asyncio
from coredis import Redis, RedisCluster

async def example():
    client = Redis(host='127.0.0.1', port=6379, db=0)
    # or with redis cluster
    # client = RedisCluster(startup_nodes=[{"host": "127.0.01", "port": 7001}]) 
    await client.flushdb()
    await client.set('foo', 1)
    assert await client.exists(['foo']) == 1
    assert await client.incr('foo') == 2
    assert await client.incrby('foo', increment=100) == 102
    assert int(await client.get('foo')) == 102
    
    assert await client.expire('foo', 1)
    await asyncio.sleep(0.1)
    assert await client.ttl('foo') == 1
    assert await client.pttl('foo') < 1000
    await asyncio.sleep(1)
    assert not await client.exists(['foo'])

asyncio.run(example())

Sentinel

import asyncio
from coredis.sentinel import Sentinel

async def example():
    sentinel = Sentinel(sentinels=[("localhost", 26379)]) 
    primary = sentinel.primary_for("myservice")
    replica = sentinel.replica_for("myservice")
    
    assert await primary.set("fubar", 1)
    assert int(await replica.get("fubar")) == 1

asyncio.run(example())

To see a full list of supported redis commands refer to the Command compatibility documentation

Compatibility

coredis is tested against redis versions 6.0.x, 6.2.x & 7.0.x. The test matrix status can be reviewed here

coredis is additionally tested against:

  • uvloop >= 0.15.0

Supported python versions

  • 3.7
  • 3.8
  • 3.9
  • 3.10
  • PyPy 3.7
  • PyPy 3.8
  • PyPy 3.9

Redis-like backends

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

References

Project details


Release history Release notifications | RSS feed

This version

4.7.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

coredis-4.7.1.tar.gz (191.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

coredis-4.7.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (346.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

coredis-4.7.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (349.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

coredis-4.7.1-cp311-cp311-macosx_11_0_arm64.whl (322.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

coredis-4.7.1-cp311-cp311-macosx_10_9_x86_64.whl (323.9 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

coredis-4.7.1-cp311-cp311-macosx_10_9_universal2.whl (406.5 kB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)

coredis-4.7.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (348.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

coredis-4.7.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (352.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

coredis-4.7.1-cp310-cp310-macosx_11_0_arm64.whl (323.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

coredis-4.7.1-cp310-cp310-macosx_10_9_x86_64.whl (325.7 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

coredis-4.7.1-cp310-cp310-macosx_10_9_universal2.whl (409.9 kB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)

coredis-4.7.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (348.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

coredis-4.7.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (352.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

coredis-4.7.1-cp39-cp39-macosx_11_0_arm64.whl (323.6 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

coredis-4.7.1-cp39-cp39-macosx_10_9_x86_64.whl (325.7 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

coredis-4.7.1-cp39-cp39-macosx_10_9_universal2.whl (409.9 kB view details)

Uploaded CPython 3.9macOS 10.9+ universal2 (ARM64, x86-64)

coredis-4.7.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (347.3 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

coredis-4.7.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (351.4 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

coredis-4.7.1-cp38-cp38-macosx_11_0_arm64.whl (322.1 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

coredis-4.7.1-cp38-cp38-macosx_10_9_x86_64.whl (323.8 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

coredis-4.7.1-cp38-cp38-macosx_10_9_universal2.whl (406.5 kB view details)

Uploaded CPython 3.8macOS 10.9+ universal2 (ARM64, x86-64)

coredis-4.7.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (340.0 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

coredis-4.7.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (343.8 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

coredis-4.7.1-cp37-cp37m-macosx_10_9_x86_64.whl (319.6 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

File details

Details for the file coredis-4.7.1.tar.gz.

File metadata

  • Download URL: coredis-4.7.1.tar.gz
  • Upload date:
  • Size: 191.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.15

File hashes

Hashes for coredis-4.7.1.tar.gz
Algorithm Hash digest
SHA256 523d3cbb0f30f97ddeff267e33e5e366c316c303c5ef346f46c306f9cbcdea7a
MD5 49dbdc998d3b3c0681282bf67cd9d604
BLAKE2b-256 c75e6f0f672c3276365819795b393a67bc231bb27fa9d71e05fa3a0e3f77bffe

See more details on using hashes here.

File details

Details for the file coredis-4.7.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for coredis-4.7.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6276de3451b3c8e2a0955a231fd48417508cb9bfbe9934a4b2ae083da77e479f
MD5 06fd38893f339c3f9a72342ece08c03e
BLAKE2b-256 fe46153dffe7870940aa0e2a0be0c674840a5726806f42247396a15888d55f7a

See more details on using hashes here.

File details

Details for the file coredis-4.7.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for coredis-4.7.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f059e43e63e9512d10194edf02e8817eaa172afc4056bf20e96e79e2220807a4
MD5 0a0ce14b7b7d5729f1799015ef610da7
BLAKE2b-256 e0eb8abac46046fd624669d329b1646042d57664ba6bebf528b9b0713785ae3a

See more details on using hashes here.

File details

Details for the file coredis-4.7.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for coredis-4.7.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a8b5602d5db56ff8ed6505a4e696bde8ad321c6c2984b2c3652d93bb85aab71a
MD5 945c59ee70700fa3caf1d6dfc82490d4
BLAKE2b-256 3520ab22c6939cb402429c30a20078a0f043e7af9584a15ce415c73a5aa110f8

See more details on using hashes here.

File details

Details for the file coredis-4.7.1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for coredis-4.7.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 af3f4506dc3a5612b82116c158cd398a05f71f738aad3f02633bd0964f26bd26
MD5 3884b348ab5abdb5545efd41534adb04
BLAKE2b-256 d3fc6eb9ab0b667ad46f94951b08b0c79c432886080717491633fa0cf2bbdf3e

See more details on using hashes here.

File details

Details for the file coredis-4.7.1-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for coredis-4.7.1-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 65c4d47ead9e3cf9dbef699c49df2e4c211e8d8d108ed2fe38f52782557c18df
MD5 748b8c1fe8b91df2015263facc7909a8
BLAKE2b-256 84ff27f9701d3b22903c1c62e570404ca7ba80a67f3b532b4d2d42226bf049aa

See more details on using hashes here.

File details

Details for the file coredis-4.7.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for coredis-4.7.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 11800e7848b556b44bbf40b50adae7aae1fca1bcbb30782b2d974c62ad150d72
MD5 40d3de58bb9377df665af92348f45809
BLAKE2b-256 ad99c7cf8a87e9bd3552397196d0211589451a6e010b38c9791583525a694136

See more details on using hashes here.

File details

Details for the file coredis-4.7.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for coredis-4.7.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 429d907841d70018eb15bad9e0e746c529ccd4d02fd429eb3819aa8f7f79fd79
MD5 d095a2e12a8ba49c60b2479ade902c88
BLAKE2b-256 20f274347d252d5398d4bd5ef77d6051a65b79c93a41da963ab8049a18387f3b

See more details on using hashes here.

File details

Details for the file coredis-4.7.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for coredis-4.7.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2f13c1d15ed8f8d03b2a260bbedd097c47000ad5cb66e4564b0e21a6d0baf25a
MD5 464731b931af7e3cf7aec02ce05a11e6
BLAKE2b-256 b6cc2417a080886be1aa1d2ba424c51059e2b792cdfb38be95c277607ec67241

See more details on using hashes here.

File details

Details for the file coredis-4.7.1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for coredis-4.7.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e560a3d9cb37d5b2057d3ff1b2d8fed7f60ac299efdaaa96a868835dedc7fbe7
MD5 b66d4901f28dc5c6e5283696d96d5aa7
BLAKE2b-256 7f9728a4511cadf852b1025b3524162c0f7183adef3af07efbb8150471708cfc

See more details on using hashes here.

File details

Details for the file coredis-4.7.1-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for coredis-4.7.1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 177852973b5f90db11aff636d5894989e29bde6fb4aec7c206ab5cb1506966ee
MD5 185aaaf15e811c00398bbc10cf7a0ffc
BLAKE2b-256 c8955c7fac1e59277960262fd1fa9fb0c71ae9bde20f67e00cb7beb09e7df5fb

See more details on using hashes here.

File details

Details for the file coredis-4.7.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for coredis-4.7.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7a072ca0c3ba5a7908dd158d5a2ff7246d17cf9e8b8f43dda0c474ae5d9c81eb
MD5 e50a42a4d01d45ef8a8b800ef19e621e
BLAKE2b-256 91ae4fe1d7d5657f8d93a8d2bfbe4c7ad4bd2c4a898ef75728951367e7364cbf

See more details on using hashes here.

File details

Details for the file coredis-4.7.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for coredis-4.7.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 76314959340677e11bbaf6bfcd9b05c2969cd82e46e1473c93aa1b5a6c78e7d9
MD5 856bc5b969bda12257b779dae1f03e9f
BLAKE2b-256 92e35c0f4fee5ab9747b0a10d676a1993168e65570d160bd885432d7543b5264

See more details on using hashes here.

File details

Details for the file coredis-4.7.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for coredis-4.7.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 df4aaa9bbccb480336c07e798e118127aeff4b47a1422731e0a41b6ba3f09cc1
MD5 29daa614820d9d59946b9c21cafaff19
BLAKE2b-256 4f73f7cc34c5694f63354f1de701493373c4a833ebcb8be2b18ffcab320e73c8

See more details on using hashes here.

File details

Details for the file coredis-4.7.1-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for coredis-4.7.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 487adc8ce4bfef892c13d5f4516089bd4175d957312c27a1078305374101f5e2
MD5 a97f3c57c5399529019e9355a74ac5cf
BLAKE2b-256 856d0d10d9f8b8b3079555885876425e8430f94ace39fa7e58c00a7898738844

See more details on using hashes here.

File details

Details for the file coredis-4.7.1-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for coredis-4.7.1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 da077ba918eb08170136f85ef4fadd774e5a5df32b45cf9b1a62f7fbfed62ce2
MD5 5dc91850fdaa6369fef31c32defd372a
BLAKE2b-256 84d0b8d303575f3a35a25a73b489f45c8511ca5717fdce6ccdcb86f90d493254

See more details on using hashes here.

File details

Details for the file coredis-4.7.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for coredis-4.7.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3f65284986f2edb80b9f57af2e5d4dfffbff79e72430b46bb10986257d7d5c45
MD5 80b5569f43bfdc58bda0c0a9ec2c0ebc
BLAKE2b-256 f2d7a100a0246f29ec56b0b2d0bcbb7bb5c2070a59c37a378f252f6285982b39

See more details on using hashes here.

File details

Details for the file coredis-4.7.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for coredis-4.7.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 165a0ec38d58a38c2f94f3090a4ce6f38276c5027798b6b81077f8f308d62f32
MD5 278f35c0280ef90158301f39c02b1c6a
BLAKE2b-256 215cb6683a49a391cdaa716dc181aa4e6603ff04322a7c805ff2aeb09139a24d

See more details on using hashes here.

File details

Details for the file coredis-4.7.1-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for coredis-4.7.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0003e0bec6aa05469c72ba7d85a5716243be1345b72a072125433f5fe9b8758a
MD5 d36b2da45780f5932a48c2fe8104bf1e
BLAKE2b-256 516961dd3d102ce9f31fe74baba27bd4d3d4ba56ebdfb29835de3ca2e7bd4bf6

See more details on using hashes here.

File details

Details for the file coredis-4.7.1-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for coredis-4.7.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0a96da99e5edac847ab20f156c302cc3eac778b76c458fe590d664e558f14203
MD5 9eb4b0f1a5b28843a806d868ba997a75
BLAKE2b-256 8b7cba8c14104d7dedc2c752adc7840e2c58fc1be86c25956edcb987cc01e0af

See more details on using hashes here.

File details

Details for the file coredis-4.7.1-cp38-cp38-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for coredis-4.7.1-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 85fdee55162f339cef402fe2682cb701d515235ec2ae3e95b7e94e82c0ba478c
MD5 18192e3beff7fe91113c3b517e98f9f2
BLAKE2b-256 dd8a35a6b7a2db60b58d5359ec6d31325fa6901ba118d562e75bde53302dea35

See more details on using hashes here.

File details

Details for the file coredis-4.7.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for coredis-4.7.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fcd3be8e7ce8588d2508ef214c36171ae0b5fd5b9912d68b074bb824f5d15bcd
MD5 044ff630e02c95732bfa284039d83d6f
BLAKE2b-256 7563855aaae62ba6ad3ced79a5b6d02735ce9e40ecc6949c33502d1d565a3ef2

See more details on using hashes here.

File details

Details for the file coredis-4.7.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for coredis-4.7.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 2bb23d67fd86362afe3c6611cf6dd7ddfe08fc29c73d0f38760174bd4dda5733
MD5 1e28d092ff9462ed86550b9b9cacba22
BLAKE2b-256 b6bdfd4aff73b163b4f462f9ec9312de602bcd2d4fa083a840f7f072c28e0413

See more details on using hashes here.

File details

Details for the file coredis-4.7.1-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for coredis-4.7.1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3cb9e3699d552efefe811b97b2545b510d8f04ce93516cca533dc0cdb002a498
MD5 d13b810e19fdbcde2388d6713bce04f1
BLAKE2b-256 39845a339c1d0e3c32b2075d81c939a12051fbecd89a5c385286ff354c9446a3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page