Redis-extensions-base is a base collection of custom extensions for Redis-py.
Project description
redis-extensions-base
Redis-extensions-base is a base collection of custom extensions for Redis-py.
Installation
pip install redis-extensions-base
Usage
In [1]: import redis_extensions as redis
In [2]: r = redis.RedisExtensions(host='localhost', port=6379, db=0)
In [3]: r.zaddwithstamps('sorted_set', 1, 'a', 2, 'b')
Out[3]: 1
In [4]: r.zrange('sorted_set', 0, 100, withscores=True)
Out[4]: [('a', 11472205032192.0), ('b', 21472205032192.0)]
In [5]: r.zrange('sorted_set', 0, 100, withscores=True, score_cast_func=r.rawscore)
Out[5]: [('a', 1.0), ('b', 2.0)]
In [6]: r.zincrbywithstamps('sorted_set', 'a')
Out[6]: 0
In [7]: r.zrange('sorted_set', 0, 100, withscores=True)
Out[7]: [('b', 21472205032192.0), ('a', 21472205071514.0)]
In [8]: r.zrange('sorted_set', 0, 100, withscores=True, score_cast_func=r.rawscore)
Out[8]: [('b', 2.0), ('a', 2.0)]
Expired
In [1]: from redis_extensions import RedisExpires as exp
In [2]: exp.REDIS_EXPIRED
exp.REDIS_EXPIRED_HALF_HOUR exp.REDIS_EXPIRED_ONE_HOUR exp.REDIS_EXPIRED_ONE_WEEK
exp.REDIS_EXPIRED_ONE_DAY exp.REDIS_EXPIRED_ONE_MONTH exp.REDIS_EXPIRED_ONE_YEAR
In [2]: exp.REDIS_EXPIRED_ONE_HOUR
Out[2]: 3600
In [3]:
In [3]: import redis_extensions as redis
In [4]: r = redis.RedisExtensions(host='localhost', port=6379, db=0)
In [5]: r.REDIS_EXPIRED
r.REDIS_EXPIRED_HALF_HOUR r.REDIS_EXPIRED_ONE_HOUR r.REDIS_EXPIRED_ONE_WEEK
r.REDIS_EXPIRED_ONE_DAY r.REDIS_EXPIRED_ONE_MONTH r.REDIS_EXPIRED_ONE_YEAR
In [5]: r.REDIS_EXPIRED_ONE_HOUR
Out[5]: 3600
Warnings
In [1]: import redis_extensions as redis
In [2]: r = redis.RedisExtensions(host='localhost', port=6379, db=0)
In [3]: r.delete_keys('redis_extensions')
``r.keys()`` used, may be very very very slow when keys' amount very large
Out[3]: 0
In [4]: r.lock_exists('redis_extensions', regex=True)
``r.keys()`` used, may be very very very slow when keys' amount very large
Out[4]: []
Solutions
-
Lock
In [1]: import redis_extensions as redis In [2]: r = redis.RedisExtensions(host='localhost', port=6379, db=0) In [3]: r.acquire_lock('redis_extensions') Out[3]: '026ad2a7-2b58-435f-8ba2-467458a687f1' In [4]: r.acquire_lock('redis_extensions') Out[4]: False In [5]: r.release_lock('redis_extensions', '026ad2a7-2b58-435f-8ba2-467458a687f1') Out[5]: True In [6]: r.acquire_lock('redis_extensions', ex=10) Out[6]: '84f6b991-7c30-4210-947a-deb56bbc769a' In [7]: r.exists('redis:extensions:lock:redis_extensions') Out[7]: True In [8]: # 10 Seconds Later In [9]: r.exists('redis:extensions:lock:redis_extensions') Out[9]: False
-
Quota
In [1]: import redis_extensions as redis In [2]: r = redis.RedisExtensions(host='localhost', port=6379, db=0) In [3]: r.quota('redis_extensions', amount=1, time=10) Out[3]: False In [4]: r.quota('redis_extensions', amount=1, time=10) Out[4]: True
-
Quote/UnQuote
In [1]: import redis_extensions as redis In [2]: r = redis.RedisExtensions(host='localhost', port=6379, db=0) In [3]: r.quote('http://a.com') Out[3]: '6eb19fa3-9e26-457b-bb88-83ea5927ac29' In [4]: r.unquote('6eb19fa3-9e26-457b-bb88-83ea5927ac29') Out[4]: 'http://a.com'
-
Token
In [1]: import redis_extensions as redis In [2]: r = redis.RedisExtensions(host='localhost', port=6379, db=0) In [3]: phone = '18888888888' In [4]: r.token(phone) Out[4]: '8bde88aa-71e9-4dea-846c-b1684a02b0f5' In [5]: r.token_exists(phone, '8bde88aa-71e9-4dea-846c-b1684a02b0f5') Out[5]: True In [6]: r.token_delete(phone) Out[6]: 1
-
Signin
In [1]: import redis_extensions as redis In [2]: r = redis.RedisExtensions(host='localhost', port=6379, db=0) In [3]: r.signin_status('redis_extensions') Out[3]: {'delta_days': 10394, # Signin Interval, Check Duplicate Signin 'signed_today': False, # Signed Today Or Not 'signin_date': '1988-06-15', # Last Signin Date 'signin_days': 0, # Continuous Signin Days 'signin_longest_days': 0, # Longest Continuous Signin Days In History 'signin_total_days': 0} # Total Signin Days In [4]: r.signin('redis_extensions') Out[4]: {'delta_days': 10394, 'signed_today': True, 'signin_date': '2016-11-29', 'signin_days': 1, 'signin_longest_days': 1, 'signin_total_days': 1} In [5]: r.signin_status('redis_extensions') Out[5]: {'delta_days': 0, 'signed_today': True, u'signin_date': u'2016-11-29', u'signin_days': 1, u'signin_longest_days': 1, u'signin_total_days': 1} In [6]: r.signin('redis_extensions') Out[6]: {'delta_days': 0, # Duplicate Signin 'signed_today': True, u'signin_date': u'2016-11-29', u'signin_days': 1, u'signin_longest_days': 1, u'signin_total_days': 1}
-
Counter
In [1]: import redis_extensions as redis In [2]: r = redis.RedisExtensions(host='localhost', port=6379, db=0) In [3]: r.counter('a') Out[3]: (1, 0, 1) # cur, pre, incr In [4]: r._counter_key('a') Out[4]: 'redis:extensions:counter:a:20170215' In [5]: r.ttl(_4) Out[5]: 86390L
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file redis-extensions-base-4.1.6.tar.gz
.
File metadata
- Download URL: redis-extensions-base-4.1.6.tar.gz
- Upload date:
- Size: 15.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ba86ef181a5ace8e73f6cc6c01a3d4f3e13ac12a36d820f944c74d2f48d9acf |
|
MD5 | d44444c67913b0e75ae831c03f0fb440 |
|
BLAKE2b-256 | 5730054ed4545e874a31026ef6f4c71e92dab7f012c26c799c6f7e6c3ccf6740 |
File details
Details for the file redis_extensions_base-4.1.6-py2.py3-none-any.whl
.
File metadata
- Download URL: redis_extensions_base-4.1.6-py2.py3-none-any.whl
- Upload date:
- Size: 14.2 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28f9824e37bb007ff7b4e4d56f5312fe8f54cf55f083d4a43994fa79c8126c41 |
|
MD5 | bd8cfad58fb40dc8591215fd1466dadf |
|
BLAKE2b-256 | aa94b082e034f67db34153f3228a4fdb113a49df8c3684660f4715faa59e3326 |