Package: redisz
关于redisz是基于redis-py封装的redis操作函数集合, 在原有函数的基础上, 进行了封装和扩展, 并且完善了代码注释和测试用例。版本0.72023/12/01[C]统一改成url传参方式(单节点/哨兵模式/集群)，以方便实用[A] 添加socket_connect_timeout=2和socket_timeout=1参数默认值[A] 添加database_index参数, 用于设置哨兵模式下的database(默认为0/不设置)[A] 添加asyncio模式的支持0.62023/09/01[A] 添加对redis哨兵模式的支持0.52022/09/01[A] 添加对redis集群的支持0.3.12022/06/01[A] 添加lock方法以实现分布式锁相关操作(acquire/release)[D] 废弃acquire_lock/release_lock方法, 改由lock方法实现锁相关操作0.3.02022/05/12[C] 由函数模式改为了类&对象模式, 不同的类对象, 可以操作不同的redis0.2.12022/04/28[C] 将初始化方法init_redis的参数改为了url模式0.22022/04/27[A] 添加acquire_lock/release_lock分布式锁函数0.12022/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类型操作函数添加/设置类型函数stringstr_set / str_msetlistlist_push / list_inserthashhash_set / hash_msetsetset_addzsetzset_add删除类型函数string-listlist_pop / list_rem / list_trim / list_bpophashhash_delsetset_pop / set_remzsetzset_rem / zset_remrangebyrank / zset_remrangebyscore修改类型函数stringstr_append / str_getset / str_setrangelistlist_sethashhash_set / hash_msetset-zsetzset_add查询/获取类型函数stringstr_get / str_mget / str_getrangelistlist_getall / list_rangehashhash_get / hash_mget / hash_keys / hash_values/ hash_getallsetset_members / set_getallzsetzset_range / zset_revrange / zset_rangebyscore / zset_revrangebyscore / zset_getall长度类型函数stringstr_lenlistlist_lenhashhash_lensetset_card / set_lenzsetzset_card / zset_count / zset_len自增/自减类型函数stringstr_incr / str_decr / str_incrfloat / str_decrfloatlist-hashhash_incr / hash_decr / hash_incrfloat / hash_decrfloatset-zsetzset_incr / zset_decr索引类型函数string-listlist_indexhash-set-zsetzset_rank / zset_index遍历&迭代类型函数string-listlist_iterhashhash_scan / hash_scan_itersetset_scan / set_scan_iterzsetzset_scan / zset_scan_iter包含类型函数string-listlist_existshashhash_existssetset_ismember / set_existszsetzset_exists消息订阅操作函数发布消息publish订阅频道subscribe锁操作函数锁lock注意事项如果redis是Cluster部署模式，必须使用hash tag才能进行多键值操作(str_mset/str_mget/list_bpop/...)