您的位置:首页 > 数据库 > Redis

Redis详细完整教程-windows下的安装、测试(php+redis+mysql)

2014-08-24 15:36 1001 查看
Redis详细完整教程-windows下的安装、测试(php+redis+mysql) 
3条评论 
一、windows下的redis的安装 

windows下的redis的下载地址:http://code.google.com/p/servicestack/wiki/RedisWindowsDownload 

或者到我本人的网盘中下载(我只是增加了一个redis.conf文件,没有该文件得自己建): 进入下载页面 

解压后有以下几个文件: 

redis-server.exe:服务程序 
redis-check-dump.exe:本地数据库检查 
redis-check-aof.exe:更新日志检查 
redis-benchmark.exe:性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询 
运行需要redis的配置文件redis.conf,如没有指定,则使用默认设置 

开始运行redis: 

解压目录:\>redis-server.exe redis.conf 
运行一个客户端连接: 

解压目录:\>redis-cli.exe -h 127.0.0.1 -p 6379 
测试一下: 

$ ./redis-cli set mykey somevalue 
OK 
$ ./redis-cli get mykey 
somevalue 
测试一下性能: 

D:\redis>redis-benchmark.exe -h 127.0.0.1 -p 6379 -n 100000 -c 50 
至此安装完毕,在客户端里面可以运行各种测试 

这里给大家推荐一个redis的管理工具:phpRedisAdmin(需要安装php的redis扩展,见第二步),一看就知道和phpmyadmin很像了,是部署在php环境下面的,给个phpRedisAdmin的下载地址(github):进入下载页面 

QQ截图20120602180426 

二、安装PHP的redis扩展 

在windows下安装php的redis扩展非常简单,下载一个.dll扩展包放到php的ext目录下,在php.ini里边添加一行配置就可以了. 

这里提供php5.3版本的redis的php扩展压缩包(里面有个dll):https://github.com/nicolasff/phpredis/downloads 

解压后把dll放到php的ext目录下,打开php.ini,增加一行: 

extension=php_redis.dll 
然后,重启apache或者nginx或者IIS就可以了. 

检测是否安装成功,可以打开phpinfo看下: 

QQ截图20120602180159 

三、PHP操作redis的简单测试 

确认我们已经做好了以下几个步骤: 

我们已经安装了redis,并且用redis-server.exe redis.conf命令启动了redis服务器 
我们已经下载了php_redis.dll拷贝到了php的ext目录,并且在php.ini中添加了一行:”extension=php_redis.dll“,然后重启了WEB服务器 
然后我们运行下面的代码: 










10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
<?php 
echo 'phpredis sample:<br />'; 

error_reporting(E_ALL); 
ini_set('display_errors','ON'); 

//已经启用了php-redis扩展,因此这里可以直接使用Redis对象了 
$redis = new Redis(); 
//进行连接 
$redis->connect('127.0.0.1',6379); 

//这里开始使用redis的功能,就是设置一下 
$redis->set('name1', 'www.51projob.com'); 
$redis->set('name2', 'www.crazyant.com'); 

echo "通过get方法获取到键的值:<br>" 
    .$redis->get('name1')."<br>" 
    .$redis->get('name2'); 
?> 
运行截图: 

phpredis 

其实获得了$redis对象,你就可以任意的执行所有的redis命令,这些包括官方redis手册的所有命令:官方手册 

四、redis+mysql实现缓存写入的简单尝试 

redis适用于缓存的,这里可以类似内存与磁盘的写回关系: 

redis 

以下是一个投票程序对redis的测试,当投票数到了50的时候,就可以将其写入到mysql: 










10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
<?php 
/** 

* 缓存利用测试,这里我们获取传过来的投票数据,每次加1,如果增加到了设定值,才将投票 
* 次数写回mysql,这大大减轻了与mysql链接的开销,redis的使用由此可见一斑 
* @var unknown_type 
* @来自:www.crazyant.net和www.51projob.com 
*/ 

//获取投票的信息的ID 
$aid = isset($_GET['aid']) ? ereg_replace("[^0-9]", "", $_GET['aid']) : 0; 

//当前投票的数字,指的是在redis中的数据 
$this_click_num = 0; 

if($aid>2){ 
    //设定写回的投票数的最大值,到了此值就写回mysql 
    $update_till_num = 50; 
    
    //创建redis对象 
    $r = new Redis(); 
    $r->connect('127.0.0.1',6379); 
    //得到现在是第几个数据了 
    $this_click_num = $r->get('count_xin_newgame:'.$aid); 
    //点击数加1 
    $r->set('count_xin_newgame:'.$aid,$this_click_num+1); 
    if($this_click_num>=$update_till_num) 
    { 
        //如果点击数超过了设定数,那么就把数据写到mysql 
        if($this_click_num>$update_till_num) 
        require_once(dirname(__FILE__)."/db.php"); 
        //更新数据库 
        $db->ExecuteNoneQuery( 
            "UPDATE `addonnewgame` 
                SET `game_num` = game_num + '{$update_till_num}' 
                WHERE `dede_addonnewgame`.`aid` ={$aid};" 
        ); 
        //重置投票数目为0 
        $r->set('count_xin_newgame:'.$aid,0); 
    } 
    $r->setTimeout('count_xin_newgame:'.$aid,7*24*60*60); 
    exit($this_click_num); 

?> 

这里没有找到php-redis扩展的文档,官方的文档是一个php_redis.php的头文件,地址: 
https://github.com/ukko/phpredis-phpdoc 
我们只要把该php下载下来放到自己的项目里面,那么写代码的时候,可以直接看到注释了 

可以这样来设置一下eclipse: 

Setup in IDE 

Right click your project -> “Properties” 
Select the “PHP Include Path” category 
Click “Add Folder…” 
Select your checkout of phpredis-phpdoc 
Click “Open” 
Click “OK” 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: