本文目录一览:
- 1、php 用redis储存session(修改PHP配置文件的),是哪种方式链接redis的
- 2、如何利用PHP访问带有密码的Redis
- 3、php 连接redis,怎么判断Redis是否挂掉
- 4、PHP怎么设置链接redis的超时时间
- 5、php连接redis是什么服务类型
- 6、PHP Redis是使用connect还是pconnect
php 用redis储存session(修改PHP配置文件的),是哪种方式链接redis的
我的习惯是直接修改php.ini
session.save_handler = redis
session.save_path = "tcp://host1:6379?weight=1, tcp://host2:6379?weight=2timeout=2.5, tcp://host3:6379?weight=2persistent=1"
weight 服务器权重
persistent 持久性(整数,应该是1或0)
timeout 超时时长
如何利用PHP访问带有密码的Redis
1. 设置Redis密码,以提供远程登陆
打开redis.conf配置文件,找到requirepass,然后修改如下:
requirepass yourpassword
yourpassword就是redis验证密码,设置密码以后发现可以登陆,但是无法执行命令了。
命令如下:
redis-cli -h 127.0.0.1 -p 6379//启动redis客户端,并连接服务器
keys * //输出服务器中的所有key
报错如下
(error) ERR operation not permitted
这时候你可以用授权命令进行授权,就不报错了
命令如下:
auth youpassword
2. PHP访问Redis
$redis = new Redis();
$conn = $redis-connect('localhost', 6379);
$auth = $redis-auth('20160601'); //设置密码
var_dump($auth);
$redis-set('access_token', "123213213213213213");
$redis-set('expired_time', 1464344863);
var_dump($redis-get("access_token"));
var_dump($redis-get("expired_time"));
php 连接redis,怎么判断Redis是否挂掉
一般链接redis,如果链接不上,或者redis挂掉,都会发生超时,你可以设置超时时间短一点,比如5秒。如果5秒链接不上则不连接了,继续往下,不影响整体代码运行。
?php
$redis = new \Redis();
$redis-connect($config['host'],$config['port'], $config['timeout']);
$redis-ping(); //检测当前链接状态,返回PONG或者抛出异常。
PHP怎么设置链接redis的超时时间
$this-redis-connect($host, $port,3); 3秒连接超时
$this-redis = new Redis();
$this-redis-connect($host, $port);
$this-redis-auth($auth);
这样解决就可以了,简单粗暴
php连接redis是什么服务类型
要在PHP程序中使用Redis,首先需要确保 Redis 的PHP驱动程序和 PHP 安装设置在机器上。可以查看 PHP教程 教你如何在机器上安装PHP。现在,让我们来看看一下如何设置 Redis 的PHP驱动程序。
需要从 github 上资料库: 下载 phpredis。下载完成以后,将文件解压缩到 phpredis 目录。在 Ubuntu 上安装这个扩展,可使用如下图所示的命令来安装。
cd phpredis
sudo phpize
sudo ./configure
sudo make
sudo make install
现在,复制和粘贴“modules”文件夹的内容复制到PHP扩展目录中,并在 php.ini 中添加以下几行。
extension = redis.so
现在 Redis 和 PHP 安装完成。
连接到Redis服务器
?php
//Connecting to Redis server on localhost
$redis = new Redis();
$redis-connect('127.0.0.1', 6379);
echo "Connection to server sucessfully";
//check whether server is running or not
echo "Server is running: " . $redis-ping();
?
当执行程序时,会产生下面的结果:
Connection to server sucessfully
Server is running: PONG
Redis的PHP字符串实例
?php
//Connecting to Redis server on localhost
$redis = new Redis();
$redis-connect('127.0.0.1', 6379);
echo "Connection to server sucessfully";
//set the data in redis string
$redis-set("tutorial-name", "Redis tutorial");
// Get the stored data and print it
echo "Stored string in redis:: " . $redis.get("tutorial-name");
?
当执行程序时,会产生下面的结果:
Connection to server sucessfully
Stored string in redis:: Redis tutorial
Redis的PHP列表示例
?php
//Connecting to Redis server on localhost
$redis = new Redis();
$redis-connect('127.0.0.1', 6379);
echo "Connection to server sucessfully";
//store data in redis list
$redis-lpush("tutorial-list", "Redis");
$redis-lpush("tutorial-list", "Mongodb");
$redis-lpush("tutorial-list", "Mysql");
// Get the stored data and print it
$arList = $redis-lrange("tutorial-list", 0 ,5);
echo "Stored string in redis:: "
print_r($arList);
?
当执行程序时,会产生下面的结果:
Connection to server sucessfully
Stored string in redis::
Redis
Mongodb
Mysql
Redis的PHP键例
?php
//Connecting to Redis server on localhost
$redis = new Redis();
$redis-connect('127.0.0.1', 6379);
echo "Connection to server sucessfully";
// Get the stored keys and print it
$arList = $redis-keys("*");
echo "Stored keys in redis:: "
print_r($arList);
?
当执行程序时,会产生下面的结果:
Connection to server sucessfully
Stored string in redis::
tutorial-name
tutorial-list
PHP Redis是使用connect还是pconnect
性能上选择pconnect会快些,一般小网站使用pconnect connect性能相差可以不计,web项目多数慢的是sql查询,懒人就先 connect,避免 pconnect中遇着坑。
pconnect 要注意坑, 因为复用连接,上一次连接设置的中调用会影响下一个连接。
----------------------------------------------------------------
redis 在没有选择库时默认是select 0
如 a请求中 select (2); set('hello', 11)
b请求中 get('hello')
b请求中长连接redis上一次刚好是a请求中使用后, get('hello') 返回的是 第2个库的键值对,而不是默认选择0库中的。