All Projects → sqlalchemy → Dogpile.cache

sqlalchemy / Dogpile.cache

Licence: mit
dogpile.cache is a Python caching API which provides a generic interface to caching backends of any variety

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Dogpile.cache

Fastapi Plugins
FastAPI framework plugins
Stars: ✭ 104 (-1.89%)
Mutual labels:  redis, memcached
Netkiller.github.io
Netkiller Free ebook - 免费电子书
Stars: ✭ 861 (+712.26%)
Mutual labels:  redis, memcached
Zxw.framework.netcore
基于EF Core的Code First模式的DotNetCore快速开发框架,其中包括DBContext、IOC组件autofac和AspectCore.Injector、代码生成器(也支持DB First)、基于AspectCore的memcache和Redis缓存组件,以及基于ICanPay的支付库和一些日常用的方法和扩展,比如批量插入、更新、删除以及触发器支持,当然还有demo。欢迎提交各种建议、意见和pr~
Stars: ✭ 691 (+551.89%)
Mutual labels:  redis, memcached
Memtier benchmark
NoSQL Redis and Memcache traffic generation and benchmarking tool.
Stars: ✭ 480 (+352.83%)
Mutual labels:  redis, memcached
Drupal Nginx Php Kubernetes
Demonstration of a set of NGINX and PHP-FPM containers running Drupal deployed to Kubernetes on the IBM Container Service. This is a work in progress.
Stars: ✭ 43 (-59.43%)
Mutual labels:  redis, memcached
Aiocache
Asyncio cache manager for redis, memcached and memory
Stars: ✭ 496 (+367.92%)
Mutual labels:  redis, memcached
Weixinmpsdk
微信全平台 SDK Senparc.Weixin for C#,支持 .NET Framework 及 .NET Core、.NET 6.0。已支持微信公众号、小程序、小游戏、企业号、企业微信、开放平台、微信支付、JSSDK、微信周边等全平台。 WeChat SDK for C#.
Stars: ✭ 7,098 (+6596.23%)
Mutual labels:  redis, memcached
Gokv
Simple key-value store abstraction and implementations for Go (Redis, Consul, etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL, MongoDB, CockroachDB and many more)
Stars: ✭ 314 (+196.23%)
Mutual labels:  redis, memcached
Fastonosql
FastoNoSQL is a crossplatform Redis, Memcached, SSDB, LevelDB, RocksDB, UnQLite, LMDB, ForestDB, Pika, Dynomite, KeyDB GUI management tool.
Stars: ✭ 1,001 (+844.34%)
Mutual labels:  redis, memcached
Reading And Comprehense Twemproxy0.4.1
redis、memcached缓存代理twemproxy源码详细分析注释,带详尽中文注释及函数调用关系。(源码学习交流QQ群:568892619)
Stars: ✭ 39 (-63.21%)
Mutual labels:  redis, memcached
Gnomock
Test your code without writing mocks with ephemeral Docker containers 📦 Setup popular services with just a couple lines of code ⏱️ No bash, no yaml, only code 💻
Stars: ✭ 398 (+275.47%)
Mutual labels:  redis, memcached
Finagle
A fault tolerant, protocol-agnostic RPC system
Stars: ✭ 8,126 (+7566.04%)
Mutual labels:  redis, memcached
React Component Caching
Speedier server-side rendering with component caching in React 16
Stars: ✭ 365 (+244.34%)
Mutual labels:  redis, memcached
Machinery
Machinery is an asynchronous task queue/job queue based on distributed message passing.
Stars: ✭ 5,821 (+5391.51%)
Mutual labels:  redis, memcached
Dotnetguide
🦸【C#/.NET/.NET Core学习、工作、面试指南】概述:C#/.NET/.NET Core基础知识,学习资料、文章、书籍,社区组织,工具和常见的面试题总结。以及面试时需要注意的事项和优秀简历编写技巧,希望能和大家一起成长进步👊。【让现在的自己不再迷漫✨】
Stars: ✭ 308 (+190.57%)
Mutual labels:  redis, memcached
Nodock
Docker Compose for Node projects with Node, MySQL, Redis, MongoDB, NGINX, Apache2, Memcached, Certbot and RabbitMQ images
Stars: ✭ 734 (+592.45%)
Mutual labels:  redis, memcached
Senparc.co2net
支持 .NET Framework & .NET Core 的公共基础扩展库
Stars: ✭ 289 (+172.64%)
Mutual labels:  redis, memcached
Cache
Cache library
Stars: ✭ 310 (+192.45%)
Mutual labels:  redis, memcached
Springmvc Project
开箱即用的SpringMVC项目,包含常规业务所需的框架功能整合,更多功能请关注 https://github.com/MartinDai/SpringBoot-Project
Stars: ✭ 33 (-68.87%)
Mutual labels:  redis, memcached
Easycaching
💥 EasyCaching is an open source caching library that contains basic usages and some advanced usages of caching which can help us to handle caching more easier!
Stars: ✭ 1,047 (+887.74%)
Mutual labels:  redis, memcached

dogpile

Dogpile consists of two subsystems, one building on top of the other.

dogpile provides the concept of a "dogpile lock", a control structure which allows a single thread of execution to be selected as the "creator" of some resource, while allowing other threads of execution to refer to the previous version of this resource as the creation proceeds; if there is no previous version, then those threads block until the object is available.

dogpile.cache is a caching API which provides a generic interface to caching backends of any variety, and additionally provides API hooks which integrate these cache backends with the locking mechanism of dogpile.

Overall, dogpile.cache is intended as a replacement to the Beaker <https://pypi.org/project/Beaker/>_ caching system, the internals of which are written by the same author. All the ideas of Beaker which "work" are re- implemented in dogpile.cache in a more efficient and succinct manner, and all the cruft (Beaker's internals were first written in 2005) relegated to the trash heap.

Documentation

See dogpile.cache's full documentation at dogpile.cache documentation <https://dogpilecache.sqlalchemy.org>_. The sections below provide a brief synopsis of the dogpile packages.

Features

  • A succinct API which encourages up-front configuration of pre-defined "regions", each one defining a set of caching characteristics including storage backend, configuration options, and default expiration time.
  • A standard get/set/delete API as well as a function decorator API is provided.
  • The mechanics of key generation are fully customizable. The function decorator API features a pluggable "key generator" to customize how cache keys are made to correspond to function calls, and an optional "key mangler" feature provides for pluggable mangling of keys (such as encoding, SHA-1 hashing) as desired for each region.
  • The dogpile lock, first developed as the core engine behind the Beaker caching system, here vastly simplified, improved, and better tested. Some key performance issues that were intrinsic to Beaker's architecture, particularly that values would frequently be "double-fetched" from the cache, have been fixed.
  • Backends implement their own version of a "distributed" lock, where the "distribution" matches the backend's storage system. For example, the memcached backends allow all clients to coordinate creation of values using memcached itself. The dbm file backend uses a lockfile alongside the dbm file. New backends, such as a Redis-based backend, can provide their own locking mechanism appropriate to the storage engine.
  • Writing new backends or hacking on the existing backends is intended to be routine - all that's needed are basic get/set/delete methods. A distributed lock tailored towards the backend is an optional addition, else dogpile uses a regular thread mutex. New backends can be registered with dogpile.cache directly or made available via setuptools entry points.
  • Included backends feature three memcached backends (python-memcached, pylibmc, bmemcached), a Redis backend, a backend based on Python's anydbm, and a plain dictionary backend.
  • Space for third party plugins, including one which provides the dogpile.cache engine to Mako templates.

The SQLAlchemy Project

Dogpile is part of the SQLAlchemy Project <https://www.sqlalchemy.org>_ and adheres to the same standards and conventions as the core project.

Development / Bug reporting / Pull requests


Please refer to the SQLAlchemy Community Guide <https://www.sqlalchemy.org/develop.html>_ for guidelines on coding and participating in this project.

Code of Conduct


Above all, SQLAlchemy places great emphasis on polite, thoughtful, and constructive communication between users and developers. Please see our current Code of Conduct at Code of Conduct <https://www.sqlalchemy.org/codeofconduct.html>_.

License

Dogpile is distributed under the MIT license <https://opensource.org/licenses/MIT>_.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].