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

本文深入讲解Redis中SortedSet数据类型的应用,包括数据插入、查询、排序及修改成员分数的方法,并通过具体案例展示如何利用SortedSet实现游戏排行榜和智能推荐购物车功能。

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

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

    1、sortedSet存储内容示意图:

    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中查询分数最高的同现商品,推荐给该用户
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值