Redis 排行榜 自己简单练习
<?php
class Ranks{
const PREFIX = 'zhengban';
protected $redis = '';
/*
初始化
*/
public function __construct(redis $redis){
$this->redis = $redis;
}
/*
添加到排行榜
*/
public function addScores($gameid,$score){
$key = self::PREFIX . date('Ymd');
return $this->redis->zIncrBy($key, $score, $gameid);
}
/*
获取特定一天的排行榜数据
返回一维数组,key是gameid,value是score
*/
public function getOneDayRankings($date,$start,$end){
$key = self::PREFIX . $date;
return $this->redis->zRevRange($key, $start, $end, true);
}
/*
获取几天数据的排行榜
*/
public function getMultiDaysRankings($dates,$start,$end){
$outKey = null;
foreach ($dates as $v){
$keys[] = self::PREFIX . $v;
}
//$weights = array_fill(0, count($keys), 1);
//$this->redis->zUnion($outKey, $keys,$weights);
$this->redis->zUnion($outKey, $keys);
return $this->redis->zRevRange($outKey, $start, $end, true);
}
} $host = "192.168.1.114";
$port = 6379;
$pwd = "123456";
$redis = new Redis();
if ($redis->connect($host, $port) == false) {
exit('{"result":"-1"}'); //连接失败
}
/* AUTH的密码 */
if ($redis->auth($pwd) == false) {
exit('{"result":"-2"}'); //认证失败
} $Ranks = new Ranks($redis);
//$Ranks->addScores(12,1);
$order = $Ranks->getMultiDaysRankings(array(20151021,20151022,20151020),0,9);
var_dump($order);
Redis 排行榜 自己简单练习的更多相关文章
- 基于redis排行榜的实战总结
前言: 之前写过排行榜的设计和实现, 不同需求其背后的架构和设计模型也不一样. 平台差异, 有的立足于游戏平台, 为多个应用提供服务, 有的仅限于单个游戏.排名范围差异, 有的面向全局排名, 有的只做 ...
- Redis中的简单事物以及消息订阅发布
Redis支持简单的事物,但是没有mysql的Innodb支持的那么的完善 我们接下来看一下Redis和Mysql的事物的一个对比: MySQL Redis 开启 start transactio ...
- Redis 2:简单使用
导读:上一篇博客对于Redis进行了简单的介绍,本篇博客就浅显的说一下Redis的基本操作使用.本次测试的环境是window8.1,呃,没用Linux等其他系统,就下载的window环境的安装包. 一 ...
- Redis 安装与简单示例
Redis 安装与简单示例 一.Redis的安装 Redis下载地址如下:https://github.com/dmajkic/redis/downloads 解压后根据自己机器的实际情况选择32位或 ...
- Redis简介与简单安装
Redis简介与简单安装 一.NoSQL的风生水起 1.1 后Web2.0时代的发展要求 随着互联网Web2.0网站的兴起,传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类 ...
- 测试redis+keepalived实现简单的主备切换【转载】
转自: 测试redis+keepalived实现简单的主备切换 - Try My Best 尽力而为 - ITeye技术网站http://raising.iteye.com/blog/2311757 ...
- redis数据库的简单介绍
NoSQL:一类新出现的数据库(not only sql) 泛指非关系型的数据库 不支持SQL语法 存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是KV形式 NoSQL的世 ...
- Redis入门很简单之六【Jedis常见操作】
Redis入门很简单之六[Jedis常见操作] http://www.tuicool.com/articles/vaqABb http://www.cnblogs.com/stephen-liu74/ ...
- 180626-Spring之借助Redis设计一个简单访问计数器
文章链接:https://liuyueyi.github.io/hexblog/2018/06/26/180626-Spring之借助Redis设计一个简单访问计数器/ Spring之借助Redis设 ...
随机推荐
- 在程序中用new ClassPathXmlApplicationContext()的注意事项
http://blog.csdn.net/budapest/article/details/38493003
- VIEWCONTROLLER的启动流程
转载自:http://sunnyyoung.net/post/ios/2015-04-22-viewcontrollerde-qi-dong-liu-cheng-yu-jie-xi VIEWCONTR ...
- Fragment在Activity中的应用 (转载)
原文链接 http://www.cnblogs.com/nanxin/archive/2013/01/24/2875341.html 在本小节中介绍在Activity中创建Fragment. 官网有很 ...
- 清除浮动的方法 after伪类。
.clearfix{ *zoom:1; } .clearfix:after{ content: ""; display: block; clear: both; } 在样式中加入上 ...
- Qt5:窗口各类位置
在Qt程序中获取窗口位置的函数有 geometry() , frameGeometry() , pos() ,x() , y()等 下面来看看这些函数的区别 还有另外两个函数 size() ...
- PHP实现畅言留言板和网易跟帖样式
原文:http://justcoding.iteye.com/blog/2251192 我要实现的就是下图的这种样式,可参考下面这两个网站的留言板,他们的实现原理都是一样的 http://chan ...
- Java ZIP压缩和解压缩文件并兼容linux
JDK中自带的ZipOutputStream在压缩文件时,如果文件名中有中文,则压缩后的 zip文件打开时发现中文文件名变成乱码. 解决的方法是使用apache-ant-zip.jar包(见附件)中的 ...
- Firebug Console 与命令行全集
Console API 当打开 firebug (也包括 Chrome 等浏览器的自带调试工具),window 下面会注册一个叫做 console 的对象,它提供多种方法向控制台输出信息,供开发人员调 ...
- 关于go的不爽
这里想记录下,自己学习.使用go语言,对于go语言不爽的地方. 1. 函数返回类型接在参数类型后面,不容易一眼看清楚函数的返回类型 如下,是不是有种很花的感觉. func NewReader(s st ...
- PAT (Advanced Level) 1085. Perfect Sequence (25)
可以用双指针(尺取法),也可以枚举起点,二分终点. #include<cstdio> #include<cstring> #include<cmath> #incl ...