使用memcache或redis限制某个用户或者某ip用户一段时间内最大投票次数
2016-05-19 00:48
756 查看
实现每个用户在某网站10分钟内最多投票5次
注:$b = array_shift($val)<time()-$t中运算符优先级是-高于<,<高于=。因此右边小于成立,$b=1,否则$b=0。
开始写的注释部分代码,后来进行优化,对||了解更加深入。 null与数字进行比较时候,默认为0。
function isFrequently($key){ $t = 60*10; $n = 5; $mem = new Memcache(); $mem->connect('127.0.0.1','11211'); if(!$mem){ echo 'memcache连接失败!'; exit; } $val = unserialize($mem->get($key)); $val = $val ? $val : array(); // if(count($val) >= 5 && time()-$val[0]<$t){ // echo '10分钟之内最多投票5次'; // }else{ // if(count($val) > 1){ // array_shift($val); // } // $val[] = time(); // $mem->set($key,serialize($val),0,$t); // echo '投票成功!'; // } if(count($val) < 5 || $b = array_shift($val)<time()-$t){ $val[] = time(); $mem->set($key,serialize($val),0,$t); echo '投票成功!'; }else{ echo '10分钟之内最多投票5次'; } }
注:$b = array_shift($val)<time()-$t中运算符优先级是-高于<,<高于=。因此右边小于成立,$b=1,否则$b=0。
开始写的注释部分代码,后来进行优化,对||了解更加深入。 null与数字进行比较时候,默认为0。
相关文章推荐
- Redis与Memcached的区别
- memcache
- Redis与Memcached的区别
- nginx负载均衡LAMP及基于memcached实现php会话保存
- memcache
- Redis和Memcache的对比及选择
- 启动web容器服务后出现 Xmemcached-Reactor-3错误
- 分布式缓存memcached
- memcache内存存储
- Memcache技术分享:介绍、使用、存储、算法、优化、命中率
- Linux下Memcached的安装、使用
- memcache面试题汇总
- MemCache知识集锦
- linux下memcached安装 和redis安装,jdk,tomcat,mysql 安装
- Memcached驱动(C#)
- memcached添加IP白名单,只允许指定服务器调用
- php扩展memcache和memcached区别?以及memcached软件的介绍
- Linux memcached 环境配置
- Tomcat中memcache的session共享
- 内存数据库 memcached