retools 0.1 : Python Package Index
2012-03-21 11:40
429 查看
retools 0.1 : Python Package Index
Downloads ↓
Latest Version:
0.2
Redis backed Python tools that are always 100% unit tested, fast, efficient,
and utilize the capabilities of Redis.
Current tools in retools:
Caching
Global Lock
On the horizon for future implementation:
A worker/job processing system similar to Celery but based on how Ruby's
Resque system works.
Beaker's caching. Unlike Beaker's caching, this utilizes Redis for distributed
write-locking dogpile prevention. It also collects hit/miss cache statistics
along with recording what regions are used by which functions and arguments.
Example:
adds several features that Beaker doesn't possess:
A distributed write-lock so that only one writer updates the cache at a time
across a cluster.
Hit/Miss cache statistics to give you insight into what caches are less
effectively utilized (and may need either higher expiration times, or just
not very worthwhile to cache).
Very small, compact code-base with 100% unit test coverage.
Lamb's example.
Example:
retools 0.1
Redis ToolsDownloads ↓
Latest Version:
0.2
Redis Tools (retools)
retools is a package of Redis tools. It's aim is to provide a variety ofRedis backed Python tools that are always 100% unit tested, fast, efficient,
and utilize the capabilities of Redis.
Current tools in retools:
Caching
Global Lock
On the horizon for future implementation:
A worker/job processing system similar to Celery but based on how Ruby's
Resque system works.
Caching
A high performance caching system that can act as a drop-in replacement forBeaker's caching. Unlike Beaker's caching, this utilizes Redis for distributed
write-locking dogpile prevention. It also collects hit/miss cache statistics
along with recording what regions are used by which functions and arguments.
Example:
from retools.cache import CacheRegion, cache_region, invalidate_function CacheRegion.add_region('short_term', expires=3600) @cache_region('short_term') def slow_function(*search_terms): # Do a bunch of work return results my_results = slow_function('bunny') # Invalidate the cache for 'bunny' invalidate_function(slow_function, [], 'bunny')
Differences from Beaker
Unlike Beaker's caching system, this is built strictly for Redis. As such, itadds several features that Beaker doesn't possess:
A distributed write-lock so that only one writer updates the cache at a time
across a cluster.
Hit/Miss cache statistics to give you insight into what caches are less
effectively utilized (and may need either higher expiration times, or just
not very worthwhile to cache).
Very small, compact code-base with 100% unit test coverage.
Locking
A Redis based lock implemented as a Python context manager, based on ChrisLamb's example.
Example:
from retools.lock import Lock with Lock('a_key', expires=60, timeout=10): # do something that should only be done one at a time
相关文章推荐
- bottle-session 0.2 : Python Package Index
- mmseg 1.2.5 : Python Package Index
- qrcode 4.0.4 : Python Package Index
- django-sentry 1.13.5 : Python Package Index
- django-celery-email 1.0.3 : Python Package Index
- bottle-session 0.3 : Python Package Index
- proxylet 0.1.1 : Python Package Index
- tox 1.4.2 : Python Package Index
- detox 0.9 : Python Package Index
- django-sentry 1.13.5 : Python Package Index
- autumn 0.5.1 : Python Package Index
- graphterm 0.40.1 : Python Package Index
- crawley 0.2.4 : Python Package Index
- SocketTornad.IO 0.1.3 : Python Package Index
- APScheduler 2.0.3 : Python Package Index
- blinker 1.2 : Python Package Index
- jenkinsapi 0.2.29 : Python Package Index
- tox 1.4.2 : Python Package Index
- suds 0.4 : Python Package Index
- suds 0.4 : Python Package Index