phpredis和predis
一般我们常用的扩展是phpredis和predis两个
- phpredis, 它是用c写的php的高效扩展:https://github.com/phpredis/phpredis,
- predis, 它是用php代码写的,也用的蛮多的:https://github.com/nrk/predis。
[PHPRedis]
<?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
1) 下载 wget https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz
2) 解压 unzip phpredis-master.zip
3) cd phpredis-master
4)phpize
5)./configure --with-php-config=/usr/local/php7/bin/php-config
6)make && make install
7)修改配置文件php.ini 添加extensions=redis.so
8)重启PHP服务
1. 连接方式(集群)
<?php
use Predis\Client;
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. 连接方式(单机)
Predis\Autoloader::register();
$client = new Predis\Client([
'scheme' => $scheme,
'host' => $host,
'port' => $port,
]);
phpredis和predis的更多相关文章
- laravel redis Error while reading line from the server.
代码运行一段时间后,会报下面的错误. [Predis\Connection\ConnectionException] Error while reading line from the server. ...
- PHP之pear包总结
现在我们开发的时候,尤其是使用框架进行项目开发的时候,都会有一个专门的包管理工具,对,那就是composer,使用这个工具可以简单快速的引入一个代码包,十分快捷好用.接下就总结一下,经常使用到的pea ...
- redis客户端介绍及php客户端的下载安装
一.PHP客户端1.官方提供了几款PHP客户端,包括amphp/redis.phpredis.Predis.Rediska.推荐使用官方推荐的两款客户端,phpredis.Predis2.phpred ...
- 10.27-Redis-mz 深入浅出Redis
深入浅出Redis 1.Redis的发展史 Redis[Remote Directory Server]:远程服务器字典 2.下载安装Redis 1>Linux下安装Reids ...
- predis如何实现phpredis的pconnect方法
predis和phpredis都是redis的php客户端,区别可以看这里,这里不赘述. phpredis是php扩展,由C语言编写,诞生较早,很多PHPer都熟悉. predis是用PHP语言编写, ...
- php版的redis操作库predis操作大全
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/146.html predis是php连接redis的操作库,由于它完全使用 ...
- Laravel 安装predis 扩展
在安装predis扩展之前先安装composer,安装教程在https://getcomposer.org/download/: php -r "copy('https://getcompo ...
- 利用phpredis实现PHP操作Redis
redis在PHP中的基本使用案例 利用phpredis实现PHP操作Redis,需要进行redis.so的下载,添加 //利用Redis类进行操作 //实例化Redis类 $redis = new ...
- 【laravel5.4】安装指定版本的predis 和 处理laravel5.*安装使用Redis以及解决Class 'Predis\Client' not found和Fatal error: Non-static method Redis::set() cannot be called statically错误
(predis下载地址:https://packagist.org/packages/predis/predis) 1.cmoposer 命令行: php composer require predi ...
- laravel5.7的redis配置,一直报错Class 'Predis\Client' not found
laravel5.7的redis配置,一直报错Class 'Predis\Client' not found 首先我检查了配置,和composer 都没有错,用原生的redis也可以正常连接和读写. ...
随机推荐
- pyspark 数据类型及转换
spark 有哪些数据类型 https://spark.apache.org/docs/latest/sql-reference.html Spark 数据类型 Data Types Spark SQ ...
- Cloudflare D1 - 免费数据存储
前言 自从上次将博客项目的图片从 七牛云 迁到了 Cloudflare R2 之后就发现,Cloudflare 这个赛博菩萨的产品是真的不错,非常的适合白嫖,DevNow 项目作为一个开源博客,整体来 ...
- 交通网络分析性能再升级,SuperMap iServer新增开启SSC分析模型
导语 SSC分析模型,全名SuperMap Short Cut,底层采用Contraction Hierarchies(简称CH)算法,该算法旨在通过对图形进行预处理和优化来降低最佳路径分析的时间复杂 ...
- 一篇文章讲清楚synchronized关键字的作用及原理
概述 在应用Sychronized关键字时需要把握如下注意点: 一把锁只能同时被一个线程获取,没有获得锁的线程只能等待: 每个实例都对应有自己的一把锁(this),不同实例之间互不影响:例外:锁对象是 ...
- CPU性能测试基准(Dhrystone)学习
简介 Dhrystone是测量处理器运算能力的最常见基准程序之一,常用于处理器的整型运算性能的测量.程序是用C语言编写的,因此C编译器的编译效率对测试结果也有很大影响. Dhrystone是由Rein ...
- android启动时间测试
需要对比基线测试的情况: Kernel log: adb shell dmesg Event log: adb shell logcat –b events Logcat log: adb shell ...
- Xcode 12 引用缺失包:libstdc++.tbd libstdc++.6.tbd libstdc++.6.0.9.tbd引发的一系列问题解析
升级到xcode12后会有libstdc++.tbd libstdc++.6.tbd libstdc++.6.0.9.tbd 等库缺失的情况,并引发一些列的 Undefined symbols for ...
- 自定义指令 v-imgerror 当图片的 src 资源 无效 就替换 默认的 src 显示图片
// 回顾自定义指令 // 作用 : 自定义一些对dom操作的快捷指令 // 前提:指令就是用来操作 dom (v-if /v-show/v-for ....) // 语法:Vue.directive ...
- python中模块的概念以及常用模块
模块的概念:为了减少常用代码重复输入,同时方便多人协作,python中定义了模块一词. 模块是一些函数的集合.在python中可以使用import导入某一模块的单个或者所有功能. python中的模块 ...
- 如何集成化管理API_方便企业内外部调用?
API 已成为企业数字战略中不可或缺的一部分.它们使不同软件系统.应用程序和服务之间能够高效.灵活地相互沟通.API不仅能提升企业内部各部门之间的协作效率,还能加强与外部合作伙伴及客户之间的互动. A ...