
问题:
redis扩展是基于php 的socket方式实现的
php.ini中的一个配置项:default_socket_timeout = 60
因此该参数同样起作用。
解决方法:
1、直接修改php.ini,将其设置为我们想要的值(这个不推荐)
2、在脚本中设置:ini_set(‘default_socket_timeout’, -1); //不超时
作者: owoer
|
发表于:2016年6月24日
|
栏目:PHP, Redis
|
phpredis ‘RedisException’ with message ‘read error on connection’已关闭评论
阅读全文

$redis->connect('127.0.0.1', 6379);
for ($i = 0; $i < 10; $i++) {
$value = 'value_' . date('Y-m-d H:i:s');
$redis->LPUSH('key1', $value);
}
echo $l = $redis->lLen('key1') . "</br>";
for ($i = 0; $i < $l; $i++) {
echo $i.':'.$redis->LPOP('key1') . "</br>";
}
echo $l = $redis->lLen('key1') . "</br>";
//$redis->del('key1');
//$redis->close();
参考:
【高并发简单解决方案】redis队列缓......

Redis 键(key) 命令
命令 描述
Redis DEL 命令 该命令用于在 key 存在是删除 key。
Redis Dump 命令 序列化给定 key ,并返回被序列化的值。
Redis EXISTS 命令 检查给定 key 是否存在。
Redis Expire 命令 seconds 为给定 key 设置过期时间。
Redis Expireat 命令 EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。 不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。
Redis PEXPIREAT 命令 设置 key 的过期时间亿以毫秒计。
Redis PEXPIREAT 命令 设置 key 过期时间的时间戳(unix timestamp) 以毫......

PDO持久化连接的方式来访问数据库,代码如下:
<?php
$type = 'mysql'; //数据库类型
$db_name = 'test'; //数据库名
$host = '127.0.0.1';
$username = 'root';
$password = 'ready';
$dsn = "$type:host=$host;dbname=$db_name";
try {
//建立持久化的PDO连接
$pdo = new PDO($dsn, $username, $password, array(PDO::ATTR_PERSISTENT => true));
} catch (Exception $e) {
die('连接数据库失败!');
}
$stmt = $pdo->query('SELECT id, body FROM demo');
while ($row ......

phpredis是redis的php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系
很有用;以下是redis官方提供的命令使用技巧:
下载地址如下:
https://github.com/owlient/phpredis(支持redis 2.0.4)
Redis::__construct构造函数
$redis = new Redis();
connect, open 链接redis服务
参数
host: string,服务地址
port: int,端口号
timeout: float,链接时长 (可选, 默认为 0 ,不限链接时间)
注: 在redis.conf中也有时间,默认为300
pconnect, popen 不会主动关闭的链接
参考上面
setOption 设置redis模式
getOption ......