通过php和redis实现一个小功能排行榜,用的数据类型是有序集合:zrevrange 递增排序,zrange 递减排序
/** * 排行榜 */ public function rank() { // $this->zrem($this->cachekey); $this->redis->del($this->cachekey); $dataOne = []; for ($i=0; $i < 5; $i++) { // 生成随机数 $num = rand(0,100); // 生成随机字符串 $str = $this->get_random(6,'abcdefghijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ'); $this->redis->zadd($this->cachekey,$num,json_encode(['name'=>$str])); // 由大到小排序 $dataOne = $this->redis->ZREVRANGE($this->cachekey, 0, -1, true); // 由小到大排序 $dataTow = $this->redis->ZRANGE($this->cachekey, 0, -1, true); } echo "<pre>"; print_r($dataOne); print_r($dataTow); } // 生成随机字符串 public function get_random($len,$chars) { $hash = ""; $max = strlen($chars) - 1; for ($i=0; $i < $len; $i++) { $hash .= $chars[mt_rand(0,$max)]; } return $hash; }