zoukankan      html  css  js  c++  java
  • Redis:Redis实现排行榜功能

    一、实现原理
    我们分析一下排行榜,一个用户一个排名,意味着要去重,这时我们会想到Java的一种数据结构Set。不过Set又是无序的。有没有一种结构是可以保住元素唯一以及有序的呢。
    幸运的是,还真的有。Redis的ZSet的就是这样的一种数据结构。Zset里面的元素是唯一的,有序的,按分数从小到大排序。作为一名优秀的crud程序员,我们从这几个方方面入手了解zset结构。
     
     
    二、代码实践
     
    <?php
    $redis = new Redis();
    $redis->connect('127.0.0.1', 6379);
    $redis->select(2);//选择数据库1
     
     
    $key = "hot";
     
     
    //insert($redis, $key);
    //get_rank_list($redis, $key);
     
     
    get_rank($redis, $key, 'key29');
     
     
    /**
    * 插入数据
    * @param $redis
    * @param $key
    */
    function insert($redis, $key)
    {
        $id = rand(1, 20);
        $redis->zIncrBy($key, 1, 'key' . $id);
        echo 'done';
    }
     
     
    /**
    * 获取 top N
    * @param $redis
    * @param $key
    */
    function get_rank_list($redis, $key)
    {
        $top = 10; //获取前10个
        $list = $redis->zRevRange($key, 0, $top - 1, true);
        print_r($list);
    }
     
     
    /**
    * 获取某个key的排名
    * @param $redis
    * @param $key
    * @param $id
    */
    function get_rank($redis, $key, $id)
    {
        echo $redis->zRank($key, $id);
    }
     

    本博客地址: wukong1688

    本文原文地址:https://www.cnblogs.com/wukong1688/p/12356920.html

    转载请注明出处!谢谢~~

  • 相关阅读:
    Javascript基础知识4
    JavaScript基础知识3
    JavaScript基本知识2
    JavaScript基本知识1
    BFC?来自CSS中的BFC
    创建【哆啦A梦】风格字体
    理解JavaScript函数
    我所了解的BFC
    jQuery
    html
  • 原文地址:https://www.cnblogs.com/wukong1688/p/12356920.html
Copyright © 2011-2022 走看看