phpredis封装

<?php
/**
 * This is a Redis exntend class
 */

class RedisClient
{
    private static $instance = NULL;


    /**
     * Get a instance of MyRedisClient
     *
     * @param string $key
     * @return object
     */
    public  static function getInstance()
    {
        if (!self::$instance) {
            $redis = new \Redis();
            $redis->connect('127.0.0.1', 6379);
            $redis->auth('23');
            self::$instance = $redis;
        }
        return self::$instance;
    }




}




   $redis = \RedisClient::getInstance();
        $redis->incr('moban_fangwen');
        print_r($redis->get('moban_fangwen'));
        exit();
?>

win7 64bit安装redis

win7 64bit安装redis

1 先安装redis客户端

1、下载Redis的压缩包

https://github.com/dmajkic/redis/downloads

我下载的是redis-2.4.5-win32-win64.zip

下载完后将其解压放在自己要放的目录下

解压后的目录

如果你是32位的话就进32bit的文件夹,64位就进64bit文件夹

文件夹进去后会看到一下的几个文件

redis-benchmark.exe: 性能测试 模拟N个客户端发送set,get请求

redis-check-aof.exe:更新日志检查

redis-check-dump.exe:本地数据库检查

redis-server.exe:服务程序

接下来就是安装了

打开dos命令栏,进入到redis的目录下面,输入以下命令:

d: && cd D:\Downloads\redis-2.4.5-win32-win64\64bit && redis-server.exe redis.conf

安装OK!

然后再打开一个dos命令栏,进入到redis的目录下,输入以下命令:

redis-cli.exe -h 127.0.0.1 -p 6379

测试一下

set key value 存值

get key 取值

 

2 安装phpredis

Redis扩展下载

http://pecl.php.net/package/redis/2.2.7/windows

查看phpinfo()信息

Compiler

Architecture

选择对应的版本下载(不然没效果),解压,将php_redis.dll放入PHP的ext目录下

修改php.ini,加入

extension=php_redis.dll

重启apache,查看phpinfo就有redis扩展的信息了。

注意:查看以下信息,下载相应版本

nginx yaf需要注意的问题

nginx yaf需要注意的问题

显示视图的方法

 $this->getView()->assign(array('pack'=>$return['pack'],'appid'=>$return['appid']));
        $this->display('index');

nginx配置文件

  index  index.php index.html index.htm;

           if (!-e $request_filename) {
           rewrite ^/(.*) /index.php?$1 last;
           }

官方文档是错的 这里修复下

ps:还有控制器和文件夹名字不要一样 不然访问优先访问文件夹 然后再访问控制器的

linux iftop查看流量的方法

linux iftop查看流量的方法
iftop 默认是查看eth0网卡的流量 这个是内网
iftop -i eth1 检测eht1网卡的流量 eth1一般都是外网 具体可以iftop查看详细信息


TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量

看TX 的peak就行了 和rate第一个

PHP防止刷微信红包方法

PHP防止刷微信红包方法
1 输入验证码
2授权登陆后 领取红包记录下 openid ip 第二次用openid或者ip(ip)连接同一个路由器是一样的 所以用ip 判断最好是判断有没有6个以上 判断有没有领取红包
3签名验证 http://newmiracle.cn/?p=1184 (这个方法就是防止多次请求数据库)
4 输入手机号 发送验证码
5 微信公众号也可以判断是否关注过
6用swoole不断的变换链接 http://newmiracle.cn/?p=2049
7 ip限制地区
8 关闭下端口 3306 或者长连接的端口
9 限制ip次数 一般限制10次
10 限制手机端运行
如上方法适用于刷票等 还有防止重复点击请求数据 什么的都行 总之限制越多 刷票成本越高 就不会有人刷了

9最关键的方法 用swoole写个定时器 发放

10如果还是被刷 那就是刚刚开起来的时候 如果红包少的快 就马上关了 观察下数据

jquery控制css3动画播放

jquery控制css3动画播放 长按图片缩小 松开停止缩小 再长按继续缩小….如此循环下去

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .suoxiaoxiaoguo1 {
            animation: scale5 7s forwards;
            -webkit-animation: scale5 7s forwards;
        }

        @-webkit-keyframes scale5 {
            0% {

            }
            100% {
                -webkit-transform: scale(0.5, 0.5);
                opacity: 1;
            }
        }

        @keyframes scale5 {
            0% {

            }
            100% {
                -webkit-transform: scale(0.5, 0.5);
                opacity: 1;
            }
        }

        .pause {
            animation-play-state: paused;
        }

    </style>
</head>
<body>
<img class="ss" style="width:100%; height:100%;  "
     src="http://wx.bocweb.cn/peng/xiangsheng_yjdd/resource/assets/library/1.jpg"/>

<script type="text/javascript" src="/index/js/jquery.min.js"></script>
<script>
    $(function () {
        $('body').on('touchstart', function () {

            $('.ss').removeClass('pause');
            $('.ss').addClass('suoxiaoxiaoguo1');

        })
        $('body').on('touchend', function () {
            $('.ss').addClass('pause');
        })
    })


</script>
</body>
</html>

ps:如果要重置动画可以用
$(‘.ss’).removeClass(‘suoxiaoxiaoguo1’); setTimeout(function(){ $(‘.ss’).addClass(‘suoxiaoxiaoguo1’); },100);
remove以后要过100毫秒 添加动画才有效果

jquery预加载显示百分比

jquery预加载显示百分比

  <img class="bj loadimg" loadimg="/weiqingshu/images/1/bj.jpg"/>

  imgNum=0;
    var load_img = [];
  /*$('.loadimg').each(function () {
        var loadimg=$(this).attr('loadimg');
        load_img.push(loadimg);
    })*/
    load_img.push( '/caigeci/images/answer0.jpg' );
    load_img.push( '/caigeci/images/answer1.jpg' );
    /*ss*/
    jQuery.imgpreload(load_img, {
        each: function () {
            /*this will be called after each image loaded*/
            var status = $(this).data('loaded') ? 'success' : 'error';
            if (status == "success") {
                var v = (parseFloat(++imgNum) / load_img.length).toFixed(2);
                console.log(Math.round(v * 100) + "<sup>%</sup>");
            }
        },
        all: function() {
            console.log('全部加载完成');
   /*$('.loadimg').each(function () {
                var loadimg=$(this).attr('loadimg');
                $(this).attr('src',loadimg);
            })*/
        }
    });

ps:加载的文件个数 /全部文件个数 的百分比就是进度