Redis (五 php与redis的结合使用)

来源:互联网 发布:如何举报淘宝店铺盗图 编辑:程序博客网 时间:2024/06/07 11:58

1 安装phpredis扩展

(1)下载phpredis源码,hhtps://github.com/owlient/phpredis/downloads

(2)解压 tar -xzvf phpredis.tar.gz

(3)编译安装

        cd phpredis

        /usr/local/php/bin/phpize

        ./configure --with-php-config=config path(你的配置文件的路径)

        make

        make install

(4)修改php.ini

        添加 extension=redis.so

        用phpinfo查看或者php -m | grep redis 查看redis扩展是否可用


(5)testCon.php 测试是否可以连接成功

    $redis = new Redis();    $con = $redis->connect('127.0.0.1', 6379);    $redis->set('key', 'val');    $val = $redis->get('key');    var_dump($val);    $redis->close();(6)实例分析
    发布微博是可能很多人同时操作,并发很多,单纯mysql可能会导致连接数过多,而使服务宕机,可以使用redis的list把消息放入队列,然后用cron定时刷新到mysql数据库,降低mysql的并发用到的文件:redis.php 实现消息放入redisweibo.php 实现消息获取,放入数据库function.php 实现消息获取的模拟内容如下:1 redis.php    include_once 'function.php';    $redis = new Redis();    $redis->connect('127.0.0.1', 6379);        $webInfo = array(        'uid' => get_uid(),        'content' => get_content(),        'timstamp' => time()    );        $redis->lPush('weiboList', json_encode($webInfo));    $redis->close();2 function.php    function get_uid()    {        return rand(1, 1000);    }        //echo get_uid();        function get_content()    {        return 'test - ' . getmygid() . rand(1, 10) . 'nj';    }    3 weibo.php    include_once "function.php";        class weibo    {        private $host = '127.0.0.1';        private $user = '...';        private $pass = '...';        private $db = 'test';        private $table = 'weibo';        //    实现发布微博的功能        public function post()        {            echo $this->connect();        }            public function connect()        {            $con = mysqli_connect($this->host, $this->user, $this->pass, $this->db);            if (!$con) {                echo "mysql connect failed";                echo "<br/>";                echo "error no is :" . mysqli_errno();                echo "<br/>";                echo "error is :" . mysqli_error();                echo "<br/>";            }            $uid = get_uid();            $content = get_content();            $sql = "insert into " . $this->table . "(uid,content) " . " values(" . $uid . ",'" . $content . "')";            $res = mysqli_query($con, $sql);            if (!$res) {                return 'pub failed';            }            return 'pub success';        }    }            
0 0