一、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):进入下载页面
二、安装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
检测是否安装成功,可以打开phpinfo看下:
三、PHP操作redis的简单测试
确认我们已经做好了以下几个步骤:
- 我们已经安装了redis,并且用
redis-server.exe redis.conf
命令启动了redis服务器 - 我们已经下载了php_redis.dll拷贝到了php的ext目录,并且在php.ini中添加了一行:”
extension=php_redis.dll
“,然后重启了WEB服务器
然后我们运行下面的代码:
1
2
3
4
5
6
7
8
9
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'
)
;
?>
|
运行截图:
其实获得了$redis对象,你就可以任意的执行所有的redis命令,这些包括官方redis手册的所有命令:官方手册
四、redis+mysql实现缓存写入的简单尝试
redis适用于缓存的,这里可以类似内存与磁盘的写回关系:
以下是一个投票程序对redis的测试,当投票数到了50的时候,就可以将其写入到mysql:
1
2
3
4
5
6
7
8
9
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”