美文网首页
Redis应用场景分析

Redis应用场景分析

作者: 四号公园_2016 | 来源:发表于2017-03-29 17:32 被阅读0次

    redis支持丰富的数据类型,列表,字典,集合,有序集合,位图,地理位置

    1. 缓存

    • 客户先查询缓存,命中返回结果,没命中,db查询写到redis中(高并发场景,突然失效会让后端数据库压力骤增)
    • 主动更新,默认缓存永久不失效,数据需要更新时候,把数据写回到redis中(更新如果耗时长,应该使用异步更新,放在消息队列中)

    2. 排行榜应用

    import string
    import random
    
    import redis
    
    r = redis.StrictRedis(host='localhost',port=6379,db=0)
    GAME_BOARD_KEY = 'game.board'
    
    # 插入100条随机用户名和分数组成的记录,zadd方法表示操作的是有序列表
    for i in range(1000):
        score = round((random.random() * 100),2)
        user_id = ''.join(random.sample(string.ascii_letters,6))
        r.zadd(GAME_BOARD_KEY,score,user_id)
    
    # 随机获取一个用户和他的得分,zrevrange表示从高到低对列表排序
    user_id, score = r.zrevrange(GAME_BOARD_KEY,0,-1,withscores=True)[random.randint(0.200)]
    print user_id,score
    
    # 获取全部记录条目数
    board_count = r.zcount(GAME_BOARD_KEY,0,100)
    
    # 这个用户分属超过了多少用户
    current_count = r.zcount(GAME_BOARD_KEY,0,score)
    
    print current_count,board_count
    
    print 'Top 10'
    print '-'*20
    
    # 获取排行版前10位的用户名和得分
    for user_id,score in r.zrevrangebyscore(GAME_BOARD_KEY,100,0,start=0,num=10,withscores=True):
        print user_id,score
    
    一个有序集合的元素数量可以达到2的32次方-1
    

    3.PV统计和UV统计(某个时期的用户活跃度,记录用户登录状态,日周计算一段时间内的活跃用户量)

    4.集群分片

    1.Twemproxy:无法平滑扩容,缩容
    2.Redis Cluster:redis3.0的集群方式
    3.Codis:豌豆荚的redis集群解决方案.

    相关文章

      网友评论

          本文标题:Redis应用场景分析

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