redis及php扩展配置(windows+php5)
Write By CS逍遥剑仙
我的主页: csxiaoyao.com
GitHub: github.com/csxiaoyaojianxian
Email: sunjianfeng@csxiaoyao.com
QQ: 1724338257
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服务
<code class="language-bash">redis-server.exe redis.windows.conf</code>
启动客户端
<code class="language-bash">redis-cli.exe -h 127.0.0.1 -p 6379 </code>
3. 安装php扩展
-
将下载的
php_redis.dll
放如php扩展目录(ext)中,并修改配置文件php.ini
(有顺序之分)
<code>extension=php_igbinary.dll extension=php_redis.dll</code>
- 重启服务,查看phpinfo()中redis扩展
4. 编写测试代码
编写redis公共类,支出对象与数组的序列化与反序列化
<code class="language-php">// 有效时间,0 代表永久有效,单位 s define('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); } } } }</code>
调用测试
<code class="language-php">MyRedis::set($redisKey, $result); echo MyRedis::get($redisKey);</code>