redis常用其他命令

        

        SortedSet(有序集合)

        排行榜使用:

1.## 添加用户到有序集,
  ## 当key不存在,或 member不是key的成员时,ZINCRBY key increment member等同于ZADD key increment member
  ## score 值可以是整数值或双精度浮点数。
    $redis->zIncrBy($rankKey, $num, $uid);  

2.##  获取分值
    $score = $cache->zScore($rank_key, $uid);
               
3.## 获取倒序排名
    $rank_id    = $cache->zRevRank($rank_key, $uid);
    $new_rank_id  = $rank_id + 1;//计算真实排名
    $result['rank'] = $new_rank_id > 50 ? '50+' : $new_rank_id;
    
    ##领先落后,$limit 和多少做比较
    function getRankData($limit-1,)
    {
        //....
        if ($rank_id > $limit){
                $result['rank_type']        = 2;//1领先,2落后
                $result['rank_contrast_id'] = $limit + 1;
                $rank_list                  = $cache->zRevRange($rank_key, $limit, $limit, true);
                $next_score                 = empty(current($rank_list)) ? 0 : current($rank_list);
                $result['rank_score']       = ($next_score - $score) > 0 ? ($next_score-$score) : '0';
            }
            else{
                $result['rank_type']        = 1;
                $result['rank_contrast_id'] = $rank_id + 2;
                $rank_list                  = $cache->zRevRange($rank_key, $new_rank_id, $new_rank_id, true);
                $next_score                 = empty(current($rank_list)) ? 0 : current($rank_list);
                $result['rank_score']       = ($score - $next_score) > 0 ? ($score-$next_score) : '0';
            }
    }


        Set(集合)

        排行榜使用:

1. ## 是否是淘汰用户,判断 member 元素是否集合 key 的成员。
    $redis->sIsMember($user_list_key, $uid)    
     
2.  ## 添加用户到淘汰列表
    $redis->sAdd($user_list_key, $uid);       
    if ($redis->ttl($user_list_key) == -1) {
        $redis->expire($user_list_key, $this->redis_len);
    }


        Hash(哈希表)

       排行榜使用:

1. ## 做任务 ,
    ## 如果域 field 不存在,那么在执行命令前,域的值被初始化为 0 。
    $total_money    = $redis->hIncrBy($hash_key, 'money', $price);
    
2. ## 做任务 ,
    ## 会先将域 field 的值设为 0 ,然后再执行加法操作
    ## 为哈希表 key 中的域 field 加上浮点数增量 increment
    $total_money    = $redis->hIncrByFloat($hash_key, 'money', $price);

 


冷暖自知一抹茶ck
请先登录后发表评论
  • 最新评论
  • 总共0条评论