Redis基础学习

import javaobj
import redis


class RedisUtil:
    def __init__(self, host, pwd=None, port=6379, decode_responses=True):
        self.pool = redis.ConnectionPool(
            host=host,
            port=port,
            password=pwd,
            decode_responses=decode_responses
        )
        self.r = redis.Redis(connection_pool=self.pool)

    # 提供统一的数据获取方法
    def get(self, key):
        # 判断目标类型,来决定使用哪个获取方法
        type = self.r.type(key)
        if type == 'sting' or type == b'string':
            return self.r.get(key)
        elif type == 'hash' or type == b'hash':
            return self.r.hgetall(key)
        elif type == 'list' or type == b'list':
            return self.r.lrange(key, 0, -1)
        elif type == 'set' or type == b'set':
            return self.r.smembers(key)
        elif type == 'zset' or type == b'zset':
            return self.r.zrange(key, 0, -1)
        else:
            raise BaseException(f'{key}得数据类型不支持')


if __name__ == '__main__':
    redis_util = RedisUtil(
        host='xxxxxx5',
        port=6xxxx,
        pwd='mxxxxx',
        decode_responses=False
    )

    # res = redis_util.get('{BUY_NOW_ORIGIN_DATA_PREFIX}_59')
    # # res是开发把后台源码中的Java对象做了序列化储存后的数据
    # # 我们要把它转成python中的对象才好去操作
    # # 需要借助 javaobj-py3
    # res_object = javaobj.loads(res)
    # print(res_object)
    # buy_now_object = res_object[0]
    # # buy_now_object 这个对象有哪些信息需要去问开发
    # # 使用 dir 函数来看buy_now_object 这个对象有哪些属性信息
    # print(dir(buy_now_object))
    # skuId = buy_now_object.sku_id
    # num = buy_now_object.num

    res = redis_util.get('{CHECKOUT_PARAM_ID_PREFIX}_59')
    print(res)
    # 读数据hash就是python里的字典
    for key, value in res.items():
        key = javaobj.loads(key)
        if value == b'':
            value = ''
        else:
            value = javaobj.loads(value)
        if key == 'paymentType':
            value = value.constant
        print(f'{key},{value}')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值