美文网首页数据库学习提升模版
redis在python中要怎么用?

redis在python中要怎么用?

作者: 后山小鲨鱼 | 来源:发表于2020-08-25 17:26 被阅读0次

    去重

    def init():
        redis_client = redis.Redis()
        all_title = {}
        redis_client.sadd('news_title',*all_title)
        
    def need_insert_news(news_title):
        redis_client = redis.Redis()
        if redis_client.sadd('news_title',news_title) == 1:
            return True
        return False
    

    mongodb批量插入redis持续性数据

    import redis
    import json
    import time
    import pymongo
    
    client = redis.Redis()
    handler = pymongo.MongoClient().chatper_8.people_info
    
    people_info_list = []
    get_count = 0
    while True:
        people_info_json = client.lpop('people_info')
        if people_info_json:
            people_info = json.loads(people_info_json.decode())
            people_info_list.append(people_info)
            if len(people_info_list) >= 1000:
                handler.insert_many(people_info_list)
                people_info_list = []
        else:
            if people_info_list and get_count % 1000 == 0:
                handler.insert_many(people_info_list)
                people_info_list = []
            time.sleep(0.1)
        get_count += 1
    

    发布/订阅模式实现一对多的消息通信

    '''
    ******************************************************发布/订阅模式实现一对多的消息通信*****
    '''
    # 向一个频道发布消息
    import redis
    client = redis.Redis()
    client.publish('pubinfo','message')
    
    # 订阅一个频道
    listener = client.pubsub()
    listener.subscribe('频道名')
    for message in listener.listen():
        print(message)
    
    # 订阅多个频道
    listener = client.pubsub(ignore_subscribe_messages=True)  # 生成发布/订阅对象,并且不显示订阅成功信息
    listener.subscribe('computer','math','shopping') # 订阅3个频道
    for message in listener.listen():
        channel = message['channel'].decode()
        data = message['data'].decode()
    
    

    有序集合进行排序

    '''
    ******************************************************有序集合进行排序*****
    '''
    import redis
    client = redis.Redis()
    
    # 向有序集合添加数据
    # data = {"xiaohong":32,"xiaoxin":18,"xiaoqiang":24}
    client.zadd("age","xiaohong",32,"xiaoxin",18,"xiaoqiang",24)
    
    # 修改有序集合的值
    client.zincrby("age","xiaohong",6) # xiaohong增加3岁
    
    # 从小到大排列
    # client.zrangebyscore('有序集合名',评分下限,评分上限,结果切片起始位置,结果数量,withscores=False) 
    # withscores为False,则返回的结果直接是排序好的值。
    #withscores为True,则返回的列表里面的元素是元组。
    #元组的第一个元素是值,第二个是评分。
    value = client.zrangebyscore("age",0,100,withscores=True)
    # 结果实例
    # [(b'xiaoxin', 18.0), (b'xiaoqiang', 24.0), (b'xiaohong', 38.0)]
    
    
    # 从大到小排列
    # client.zrevrangebyscore('有序集合名',评分上限,评分下限,结果切片起始位置,结果数 
    #量,withscores=False) # withscores为False,则返回的结果直接是排序好的值。
    #withscores为True,则返回的列表里面的元素是元组。
    #元组的第一个元素是值,第二个是评分。
    value = client.zrevrangebyscore("age",100,0,withscores=False)
    # 结果实例
    # [b'xiaohong', b'xiaoqiang', b'xiaoxin']
    
    # 查看有序集合有多少个值
    value = client.zcard('age')
    # 结果实例
    # 3
    
    # 在某个评分范围内的值有多少个
    value = client.zcount('age', 0, 30)
    # 结果实例
    # 2
    

    相关文章

      网友评论

        本文标题:redis在python中要怎么用?

        本文链接:https://www.haomeiwen.com/subject/ayczjktx.html