0
点赞
收藏
分享

微信扫一扫

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

陌岛 2023-02-07 阅读 144


一、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 mykeysomevalue

测试一下性能:

D:\redis>redis-benchmark.exe -h 127.0.0.1 -p 6379 -n 100000 -c 50

至此安装完毕,在客户端里面可以运行各种测试

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

​​

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

​​


二、安装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看下:

​​

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

​​

三、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'); ?>
————————————————


<?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' ) ;








运行截图:

​​

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

​​

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

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

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

​​

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

​​

以下是一个投票程序对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
/**
*
* 缓存利用测试,这里我们获取传过来的投票数据,每次加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 条评论