redis及php扩展配置(windows+php5)

来源:互联网 发布:好看的网络自制剧穿越 编辑:程序博客网 时间:2024/06/05 19:55

redis及php扩展配置(windows+php5)

  • redis及php扩展配置windowsphp5
    • 安装
    • 启动
    • 安装php扩展
    • 编写测试代码

1. 安装

redis官方github链接:https://github.com/antirez/redis

redis官方默认没有windows版本,微软提供的一个版本:https://github.com/MicrosoftArchive/redis

文件说明:

redis-server.exe:服务程序

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

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

redis-benchmark.exe:性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询

2. 启动

使用默认配置启动redis服务

redis-server.exe redis.windows.conf

启动客户端

redis-cli.exe -h 127.0.0.1 -p 6379 

3. 安装php扩展

  1. 下载扩展:https://github.com/nicolasff/phpredis/downloads(注意版本)

  2. 将下载的 php_redis.dll 放如php扩展目录(ext)中,并修改配置文件 php.ini (有顺序之分)

extension=php_igbinary.dllextension=php_redis.dll
  1. 重启服务,查看phpinfo()中redis扩展

4. 编写测试代码

编写redis公共类,支出对象与数组的序列化与反序列化

// 有效时间,0 代表永久有效,单位 sdefine('REDIS_TTL', 15);class MyRedis{    private static $handler;    private static function handler(){        if(ALLOW_REDIS == false){            return false;        }        if(!self::$handler){            self::$handler = new Redis();            self::$handler -> connect(REDIS_HOST,REDIS_PORT);            self::$handler -> auth(REDIS_AUTH);        }        return self::$handler;    }    public static function get($key){        if(ALLOW_REDIS == false){            return false;        }else{            $value = self::handler() -> get($key);            $value_serl = @unserialize($value);            if(is_object($value_serl)||is_array($value_serl)){                return $value_serl;            }            return $value;        }    }    /**     * @param $key     * @param $value     * @param int $timeDiff 与 REDIS_TTL 的时差     * @return bool     */    public static function set($key,$value,$timeDiff=0){        if(ALLOW_REDIS == false){            return false;        }else{            if(is_object($value)||is_array($value)){                $value = serialize($value);            }            if(REDIS_TTL){                return self::handler() -> setex($key,REDIS_TTL+$timeDiff,$value);            }else{                return self::handler() -> set($key,$value);            }        }    }}

调用测试

MyRedis::set($redisKey, $result);echo MyRedis::get($redisKey);