Skip to main content

redis toolset

Project description

关于

redisz是基于redis-py封装的redis操作函数集合, 在原有函数的基础上, 进行了封装和扩展, 并且完善了代码注释和测试用例。

版本

  • 0.7 2023/12/01
    • [C] 统一改成url传参方式(单节点/哨兵模式/集群),以方便实用
    • [A] 添加socket_connect_timeout=2socket_timeout=1参数默认值
    • [A] 添加database_index参数, 用于设置哨兵模式下的database(默认为0/不设置)
    • [A] 添加asyncio模式的支持
  • 0.6 2023/09/01
    • [A] 添加对redis哨兵模式的支持
  • 0.5 2022/09/01
    • [A] 添加对redis集群的支持
  • 0.3.1 2022/06/01
    • [A] 添加lock方法以实现分布式锁相关操作(acquire/release)
    • [D] 废弃acquire_lock/release_lock方法, 改由lock方法实现锁相关操作
  • 0.3.0 2022/05/12
    • [C] 由函数模式改为了类&对象模式, 不同的类对象, 可以操作不同的redis
  • 0.2.1 2022/04/28
    • [C] 将初始化方法init_redis的参数改为了url模式
  • 0.2 2022/04/27
    • [A] 添加acquire_lock/release_lock分布式锁函数
  • 0.1 2022/04/01
    • 发布

代码示例

from redisz import Redisz


# -单节点模式
rdz = Redisz('redis://10.20.30.40:6379')
# rdz = redisz.Redisz('redis://1.1.1.1') # 默认端口为6379
# rdz = redisz.Redisz('redis://1.1.1.1:6379/10') # 指定database,默认为0
            
# -集群模式
# rdz = redisz.Redisz('cluster://1.1.1.1:6379;2.2.2.2:6379;3.3.3.3') # 默认端口为6379

# -哨兵模式
# rdz = redisz.Redisz('sentinel://1.1.1.1:26379;2.2.2.2:26379;3.3.3.3') # 默认端口为26379
# rdz = redisz.Redisz('sentinel://1.1.1.1:26379;2.2.2.2:26379;3.3.3.3',
                        database_index=10, sentinel_service_name='yourmaster')  # 指定database(默认为0)和哨兵mastername(默认为'mymaster')

# asyncio
# rdz = redisz.Redisz('sentinel://1.1.1.1:26379;2.2.2.2:26379;3.3.3.3', asyncio=True)

# set
rdz.set_value('test:str', 'a')
rdz.set_value('test:str-number', 1.0)
rdz.set_value('test:list', [1, 2, 3])
rdz.set_value('test:hash', {'a': 1, 'b': 2, 'c': 3})
rdz.set_value('test:set', {'x', 'y', 'z'})
rdz.set_value('test:zset', {'x': 1, 'y': 2, 'z': 3}, type='zset')
rdz.list_push('test:{numbers}1', ['1', '2'])  # cluster hash tag
rdz.list_push('test:{numbers}2', ['3', '4'])  # cluster hash tag

# get
print('str:=', rdz.get_value('test:str'))
print('str:number=', rdz.get_value('test:str-number'))
print('str:list=', rdz.get_value('test:list'))
print('str:hash=', rdz.get_value('test:hash'))
print('str:set=', rdz.get_value('test:set'))
print('str:zset=', rdz.get_value('test:zset'))
print(rdz.get_names())

# lock
# -method1
try:
    with rdz.lock('my_lock'):
        rdz.set_value('foo', 'bar')
except LockError as err:
    print(err)
# -method2
lock = rdz.lock('my_lock')
if lock.acquire(blocking=True):
    rdz.set_value('foo', 'bar')
    lock.release()

函数汇总

全局函数

操作 函数
键值存取 get_value / set_value
查询 get_type/ get_names / keys
存在 exists
删除 delete
重命名 rename
存在时间 ttl / expire / expireat / persist
排序 sort

类型操作函数

添加/设置

类型 函数
string str_set / str_mset
list list_push / list_insert
hash hash_set / hash_mset
set set_add
zset zset_add

删除

类型 函数
string -
list list_pop / list_rem / list_trim / list_bpop
hash hash_del
set set_pop / set_rem
zset zset_rem / zset_remrangebyrank / zset_remrangebyscore

修改

类型 函数
string str_append / str_getset / str_setrange
list list_set
hash hash_set / hash_mset
set -
zset zset_add

查询/获取

类型 函数
string str_get / str_mget / str_getrange
list list_getall / list_range
hash hash_get / hash_mget / hash_keys / hash_values/ hash_getall
set set_members / set_getall
zset zset_range / zset_revrange / zset_rangebyscore / zset_revrangebyscore / zset_getall

长度

类型 函数
string str_len
list list_len
hash hash_len
set set_card / set_len
zset zset_card / zset_count / zset_len

自增/自减

类型 函数
string str_incr / str_decr / str_incrfloat / str_decrfloat
list -
hash hash_incr / hash_decr / hash_incrfloat / hash_decrfloat
set -
zset zset_incr / zset_decr

索引

类型 函数
string -
list list_index
hash -
set -
zset zset_rank / zset_index

遍历&迭代

类型 函数
string -
list list_iter
hash hash_scan / hash_scan_iter
set set_scan / set_scan_iter
zset zset_scan / zset_scan_iter

包含

类型 函数
string -
list list_exists
hash hash_exists
set set_ismember / set_exists
zset zset_exists

消息订阅

操作 函数
发布消息 publish
订阅频道 subscribe

操作 函数
lock

注意事项

  • 如果redis是 Cluster 部署模式,必须使用hash tag才能进行多键值操作(str_mset/str_mget/list_bpop/...)

Project details


Download files

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

Source Distribution

redisz-0.7.tar.gz (35.9 kB view details)

Uploaded Source

Built Distribution

redisz-0.7-py3-none-any.whl (37.1 kB view details)

Uploaded Python 3

File details

Details for the file redisz-0.7.tar.gz.

File metadata

  • Download URL: redisz-0.7.tar.gz
  • Upload date:
  • Size: 35.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.2

File hashes

Hashes for redisz-0.7.tar.gz
Algorithm Hash digest
SHA256 dd78b2bc15fb9858ce2d8023a9d38e2dc68f622348280225f05a0f8c1cba9bf0
MD5 627fb4a7a021c099a3a8c56448aabdad
BLAKE2b-256 baefc6973bfa69fc8332d019cd90002f51d4b88333effb1091f50c97169f8b26

See more details on using hashes here.

File details

Details for the file redisz-0.7-py3-none-any.whl.

File metadata

  • Download URL: redisz-0.7-py3-none-any.whl
  • Upload date:
  • Size: 37.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.2

File hashes

Hashes for redisz-0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 32016b573509b33128f4c62a9ba5878b182b7df5b45951d6f07601f5766d6034
MD5 7dbdd24f97f72a53020fbf99b75a2d52
BLAKE2b-256 ec2477555105ecd1342fedff16b64d77094da0768344fefb94c35701c37bc91f

See more details on using hashes here.

Supported by

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