一般我们常用的扩展是phpredis和predis两个
- phpredis, 它是用c写的php的高效扩展:https://github.com/phpredis/phpredis,
- predis, 它是用php代码写的,也用的蛮多的:https://github.com/nrk/predis。
[PHPRedis]
1. 单机方式
<?php $client = new Redis(); $client->connect('10.30.5.163', '7000'); echo $client->get('new_item_key:d89b561fb759fd533a8c2781ef15dd5f');
2. 集群方式
<?php $redis_list = ['10.30.5.162:7000','10.30.5.163:7000','10.30.5.163:7001']; $client = new RedisCluster(NUll,$redis_list); echo $client->get('new_item_key:d89b561fb759fd533a8c2781ef15dd5f');
3. 超时设置
<?php $redis_list = ['10.30.5.162:7000','10.30.5.163:7000','10.30.5.163:7001', 1.5, 1.5]; $client = new RedisCluster(NUll,$redis_list); echo $client->get('new_item_key:d89b561fb759fd533a8c2781ef15dd5f');
timeout和read_timeout功能。就是加到master列表的后面。
timeout表示连接redis的最长时间,这里设为1.5秒,表示超过1.5秒要是还没连接成功就返回false 。
read_timeout表示连接redis成功后,读取一个key的超时时间,有时候读取一个key 可能value比较大,读取需要很长时间,这里设置1.5秒,表示要是过了1.5秒还没读取到数据就返回false。
4. 扩展安装
~ git clone git@github.com:phpredis/phpredis.git ~ cd phpredis ~ git fetch ~ git checout feature/redis_cluster #切换到cluster分支 ~ phpize ~ ./configure ~ make ~ make install
[predis]
1. 连接方式(集群)
<?php use PredisClient; require __DIR__ . '/../vendor/autoload.php'; // 写一个节点也可以 $redis_list = [ 'tcp://10.30.5.163:7000', 'tcp://10.30.5.163:7001', 'tcp://10.30.5.162:7000' ]; $redis = new Client($redis_list, ['cluster'=>'redis']); echo $redis->get('new_item_key:d89b561fb759fd533a8c2781ef15dd5f');
2. 连接方式(单机)
PredisAutoloader::register(); $client = new PredisClient([ 'scheme' => $scheme, 'host' => $host, 'port' => $port, ]);