Redis 5种数据类型—— sortedSet(有序集合)

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及 sorted set(有序集合)。

sortedSet(有序集合)数据结构
    sortedset中存储的成员都有一个附带的分数值
    而redis就可以根据分数来对成员进行各种排序(正序、倒序)

    1、sortedSet存储内容示意图:

Redis 5种数据类型—— sortedSet(有序集合)_第1张图片

    2、往redis库中插入一条sortedset数据
       redis 127.0.0.1:6379> zadd nanShenBang  70 "刘德华"  90 "黄渤"  100 "韦小宝"  59 "杨过"
       (integer) 4

    3、从sortedset中查询有序结果
        正序结果
            redis 127.0.0.1:6379> zrange nanShenBang 0 3
            1) 杨过
            2) 刘德华
            3) 黄渤
            4) 韦小宝
        倒序结果
            redis 127.0.0.1:6379> zrevrange nanShenBang 0 3
            1) 韦小宝
            2) 黄渤
            3) 刘德华
            4) 杨过

    4、查询某个成员的名次
        在正序榜中的名次
            redis 127.0.0.1:6379> zrank nanShenBang "杨过"     #从小 ------> 大查询名次
            (integer) 0
        在倒序榜中的名次
            redis 127.0.0.1:6379> zrevrank nanShenBang "杨过"  #从大 ------> 小查询名次
            (integer) 3

    5、修改成员的分数
        redis 127.0.0.1:6379> zincrby nanShenBang 300 "杨过"
        "359"
        redis 127.0.0.1:6379> zrevrank nanShenBang "杨过"  #从大------>小查询名次
        (integer) 0

    应用案例:Lol盒子英雄数据排行榜
        1、在redis中需要一个榜单所对应的sortedset数据
        2、玩家每选择一个英雄打一场游戏,就对sortedset数据的相应的英雄分数+1
        3、Lol盒子上查看榜单时,就调用zrange来看榜单中的排序结果

    作业:
    带智能推荐的购物车整合到巴巴运动网中:
    实现步骤:
    1、每来一个用户创建购物车,就对购物车中的每一件商品在redis中插入一条以商品名称为key的sortedset,
        成员为同时出现在购物车中的其他商品,分数为1
    2、每新产生一个购物车,就对车中的商品更新redis中的sortedset,将同时出现的商品的分数增1
    3、推荐时,用户放入一件商品到购物车,则从这件商品对应的sortedset中查询分数最高的同现商品,推荐给该用户

你可能感兴趣的:(Redis)