本文目录一览:
- 1、如何测试 php安装成功redis
- 2、怎么看 php 本地redis是phpredis还是predis
- 3、订单超时,活动过期解决方案:php监听redis键重复触发引发事件
- 4、如何在 Windows 环境下安装 Redis 和 phpredis 模块
- 5、怎么安装redis PHP扩展,windows下
- 6、redis的php客户端为什么连接数这么大
如何测试 php安装成功redis
解压安装:
复制代码代码如下:
tar -xvf redis-2.8.17.tar.gz
make
sudo make install
为方便使用,在/usr目录下创建redis目录,讲如下几个文件拷贝到/usr/redis/目录下:
复制代码代码如下:
/yourdir/redis-2.8.17/redis.conf
/yourdir/redis-2.8.17/src/redis-benchmark
/yourdir/redis-2.8.17/src/redis-server
/yourdir/redis-2.8.17/src/redis-cli
当然,你也可以通过软连接的方式达到方便使用的目的。此外,你也可以将redis-server加入开机启动,此处从略。
2.redis测试
1)先开启redis服务端程序
为方便测试,我们将redis.conf配置文件中的loglevel和logfile的值,修改后如下:
loglevel debug
logfile “/tmp/redis.log”
jay13@ubuntu:/usr/redis$ redis-server redis.conf
2)开启redi客户端,通过客户端向redis数据库中进行增删改查操作。整个操作过程中生成的日志可以到/tmp/redis.log中查看。
以最简单的key操作为例,实例如下:
复制代码代码如下:
jay13@ubuntu:/usr/redis$ redis-cli
127.0.0.1:6379 set jay13 jb51.net
OK
127.0.0.1:6379 set jay hello,world
OK
127.0.0.1:6379 get jay
"hello,world"
127.0.0.1:6379 get jay13
"jb51.net"
127.0.0.1:6379 del jay
(integer) 1
127.0.0.1:6379 get jay
(nil)
127.0.0.1:6379 set jay13
OK
127.0.0.1:6379 get jay13
""
3.安装phpredis扩展
在使用sudo apt-get install php5安装php时,默认是没有安装phpize的,我们安装phpredis时,需要用到phpize,因此,需要先安装phpize。
1)我们通过安装php开发者工具来获取phpize。执行如下命令即可:
复制代码代码如下:
sudo apt-get install php5-dev
2)获取phpredis源文件
按照GitHub上的说明进行如下安装时,
复制代码代码如下:
phpize
./configure --enable-redis-igbinary
make make install
可能会出现如下出错说明:
复制代码代码如下:
checking for igbinary includes... configure: error: Cannot find igbinary.h
怎么看 php 本地redis是phpredis还是predis
Redis支持的客户端种类非常多,包括C、Java、PHP、Python等,本文主要介绍PHP客户端的安装和使用。
Redis的客户端实际上担负了通过网络协议与Redis Server进行通信的过程,通信的过程必须遵循协议规范,让客户的调用更加符合特定语言的使用习惯。
订单超时,活动过期解决方案:php监听redis键重复触发引发事件
订单超时,活动过期解决方案:php监听redis键重复触发引发事件
Redis的2.8.0版本之后可用,键空间消息(Redis Keyspace Notifications),配合2.0.0版本之后的SUBSCRIBE 可以完成这个定时任务的操作了,定时的单位是秒。
1.我们先订阅频道称为 redisChat
2.现在,我们重新开启个redis客户端,然后在同一个频道redisChat发布消息,订阅者可以接收到消息。
接收到的消息如下:
3.Key过期事件的Redis配置
需要这里配置notify-keyspace-events的参数为“EX” .X代表了过期事件。notify-keyspace-events “Ex”保存配置后,重启Redis的服务,使配置生效。
PHP Redis实现订阅键空间通知
redis实例化类:
redis.class.php
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
//遇到类别重复的报错,所有叫Redis2
classRedis2
{
private$redis;
publicfunction__construct($host= '127.0.0.1', $port= 6379)
{
$this-redis = newRedis();
$this-redis-connect($host, $port);
}
publicfunctionsetex($key, $time, $val)
{
return$this-redis-setex($key, $time, $val);
}
publicfunctionset($key, $val)
{
return$this-redis-set($key, $val);
}
publicfunctionget($key)
{
return$this-redis-get($key);
}
publicfunctionexpire($key= null, $time= 0)
{
return$this-redis-expire($key, $time);
}
publicfunctionpsubscribe($patterns= array(), $callback)
{
$this-redis-psubscribe($patterns, $callback);
}
publicfunctionsetOption()
{
$this-redis-setOption(\Redis::OPT_READ_TIMEOUT, -1);
}
}
过期事件的订阅:
psubscribe.php
1个
2
3
4
5
6
7
8
9
10
11
12
13
14
15
require_once'./Redis.class.php';
$redis= new\Redis2();
// 解决Redis客户端订阅时候超时情况
$redis-setOption();
$redis-psubscribe(array('__keyevent@0__:expired'), 'keyCallback');
// 回调函数,这里写处理逻辑
functionkeyCallback($redis, $pattern, $chan, $msg)
{
echo"Pattern: $pattern\n";
echo"Channel: $chan\n";
echo"Payl
oad: $msg\n\n";
//keyCallback为订阅事件后的回调函数,这里写业务处理逻辑,
//比如前面提到的商品不支付自动撤单,这里就可以根据订单id,来实现自动撤单
}
设置过期事件:
index.php
1个
2
3
4
require_once'./Redis.class.php';
$redis= new\Redis2();
$order_id= 123;
$redis-setex('order_id',10,$order_id);
先用命令行模式执行 psubscribe.php
在浏览器访问 index.php
效果如下:
如何在 Windows 环境下安装 Redis 和 phpredis 模块
1下载安装文件,选择稳定版本2点击安装exe文件,进行安装。选择好路径,一直到安装结束即可。
3点击Service查看Redis服务是否正确的安装。Windows--》Service.msc。默认的端口为6379。服务已启动。
4使用客户端工具进行连接,出现如下画面即成功。
5使用CMD工具,安装另一个Redis实例服务,端口为6369.需要提前建好6369端口使用的conf文件
如:C:\Users\GrayE:\redis-2.8.17\redis-server.exe --service-installE:\redis-2.8.17\redis6369.conf --service-name RedisServer6369 --port 6369
试验了几次都没有提示成功的信息,但是查看服务成功了,而且用客户端连接也成功了。
6查看6369端口的redis服务
7使用客户端连接6369 redis服务,出现如下界面表示成功
8至此,大功告成。
怎么安装redis PHP扩展,windows下
1、根据php信息,如下图,下载合适的 phpredis.dll扩展包。下载地址:
用phpinfo 查看到时TS vc9。那么下载的版本就对应好
ts版 phpredis_5.4_vc9_ts.7z nts版 phpredis_5.4_vc9_nts.7z
2、解压缩之后得到两个文件,分别将两个文件复制到php 目录的 ext目录下。
3、修改php.ini文件。加入extension 扩展
extension=php_igbinary.dll
extension=php_redis.dll
4、 重启apache ,查看phpinfo 界面。如下则表示安装成功
5、phpredis hellow word 开始你的redis使用
?php
$redis = new Redis(); //redis对象
$redis-connect("192.168.60.6","6379"); //连接redis服务器
$redis-set("test","Hello World"); //set字符串值
echo $redis-get("test"); //获取值
?
感谢网友分享。
redis的php客户端为什么连接数这么大
第一,Redis的默认时间设置在redis.conf中timeout是300秒,请问是否修改过这个参数,修改为多少了? 第二,你用的这个redis扩展,这种用法$redis-connect('127.0.0.1', 6379);意味着超时时间未设置,会一直不超时。关于这点,请详细查看该扩展的文章。
根据你提供的不多的信息估计,最可能的是第二条中你未设置连接时间,用了默认不超时的方式。但是你说的是在30秒后断开,又不是符合redis.conf的默认配置。除非你修改了默认配置就说的通了。