【PHP】 PHP+Redis有序集合(zset)实现排行榜功能

整理自:https://www.cnblogs.com/itbsl/p/13407489.html

搬运贴,如果有侵权请联系删除


  • 增加阅读量(销量)时

$redis = new Redis();
if (!$redis->connect('127.0.0.1', 6379)) {
    trigger_error('Redis连接出错!!!', E_USER_ERROR);
} else {
    echo '连接正常<br>';
}
//参数1: key(键)
//参数2: score(分数,本示例表示阅读量)
//参数3: member(成员,本示例表示文章ID)
$redis->zIncrBy('view_nums', 12, 1101);
$redis->zIncrBy('view_nums', 245, 1102);
$redis->zIncrBy('view_nums', 6, 1103);
$redis->zIncrBy('view_nums', 99, 1104);
$redis->zIncrBy('view_nums', 1267, 1105);
$redis->zIncrBy('view_nums', 23, 1106);
$redis->zIncrBy('view_nums', 456, 1107);
$redis->zIncrBy('view_nums', 9999, 1108);

$redis->close();
  • 排序

//1.初始化Redis连接
$redis = new Redis();
if (!$redis->connect('127.0.0.1', 6379)) {
    trigger_error('Redis连接出错!!!', E_USER_ERROR);
} else {
    echo '连接正常<br>';
}

//2.获取倒序的view_nums的前5个,下标从0开始,所以是[0~4],第四个参数表示是否使用score排名
$list = $redis->zRevRange('view_nums', 0, 4, true);

//3.关闭redis连接
$redis->close();

var_dump($list);

  

得意时做事,失意时读书
原文地址:https://www.cnblogs.com/lanse1993/p/14114016.html