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

一、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服务器

      然后我们运行下面的代码:

      <?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的测试,当投票数到了50的时候,就可以将其写入到mysql:

      <?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”

      • 0
        点赞
      • 0
        收藏
        觉得还不错? 一键收藏
      • 0
        评论
      Predis Phpredis Rediska介绍 1 Predis   Predis是一个灵活和特性完备(PHP>5 3)的支持RedisPHP客户端 当前版本为0 6 3 默认不支持PHP5 2 主要特性如下: 完整的支持从1 2到2 4的Redis 并且支持当前正在开发的版本; 提供客户端实现的一致性哈希算法 支持自定义; 在单个或聚合连接中支持命令管道;(Command pipelining on single and aggregated connections) 能够通过TCP IP或者Unix domain sockets连接到redis 支持持久连接; 自动连接Redis实例 使用“懒惰”方式 只在第一个命令发出时执行连接; 可以灵活定义客户端的命令集合; 2 Phpredis(推荐使用)   这是一个二进制版本的PHP客户端 按照的说法 效率要比Predis高 这个版本支持作为Session的Handler 这个扩展的有点在于无需加载 任何外部文件 使用比较方便 缺点在于难于扩展 一般的PHP程序员无法对其做出扩展 考虑到Redis正在飞速发展过程中 缺乏扩展的特性还是有些影响 的 需要维护过程中注意进行升级更新 调用Redis的相关方法 Redis:: construct构造函数$redis new Redis ; 1 基本相关操作 connect open 链接redis服务 参数host: string 服务地址 port: int 端口号 timeout: float 链接时长 可选 默认为 0 不限链接时间 注: 在redis conf中也有时间 默认为300 pconnect popen 不会主动关闭的链接 参考上面 setOption 设置redis模式 getOption 查看redis设置的模式 ping 查看连接状态 get 得到某个key的值(string值) 如果该key不存在 return false set 写入key 和 value(string值) 如果写入成功 return ture">Predis Phpredis Rediska介绍 1 Predis   Predis是一个灵活和特性完备(PHP>5 3)的支持RedisPHP客户端 当前版本为0 6 3 默认不支持PHP5 2 主要特性如下: 完整的支持从1 2到2 4的Redis 并且支持当前正在开发的版本; 提供客户 [更多]

      “相关推荐”对你有帮助么?

      • 非常没帮助
      • 没帮助
      • 一般
      • 有帮助
      • 非常有帮助
      提交
      评论
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

      当前余额3.43前往充值 >
      需支付:10.00
      成就一亿技术人!
      领取后你会自动成为博主和红包主的粉丝 规则
      hope_wisdom
      发出的红包
      实付
      使用余额支付
      点击重新获取
      扫码支付
      钱包余额 0

      抵扣说明:

      1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
      2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

      余额充值