redis 3.0 cluster 集群 学习之路篇 [4]
2014-10-06 10:26
447 查看
周氏一族,整理技术文档,给下一代留点教程......
既然环境已经在前面一篇文章当中搭建好了
http://zhoushouby.blog.51cto.com/9150272/1560505
那么接下来,就是要如何灵活调用 redis cluster 发挥功效的时候了。
大家都知道,我们redis是用来辅助mysql,减少压力,我们一般都是通过web前端来调用redis API接口,从而实现redis 功效,但是,有真正干过这回事的童鞋肯定知道,不管是ruby还是jedis,甚至是lua,对于一个全新的redis概念,cluster 3.0,之前的所有client都不能支持了。我们可以看一下官网的说法:
一共是5个可以支持的
但是,redis-cli,我们可以不用去看他了,这是后台管理工具,不能用作前端
redis-rb-cluster,这个可以用,但是需要自己写脚本,麻烦
redis-py-cluster,也不错,但是她已经停止服务了,6个月前。那就别往坑了跳
Predis ,这个好,实在是good,而且最近还是很活跃。
Jedis,这个好,但是这个是java的,不适合放在前端
所以,毫无疑问,选择Predis,其实,在redis 2.6的时候 ,就已经知道Predis这个东西了,但是之前先比phpredis之前,略逊了一点,因为他是纯php代码,而phpredis是C编写,所以略胜出。不过到这个之后了,就不再去比较这些了,能先给我用着,就算很好的啦。
说干,就干
Predis 官网 https://github.com/nrk/predis
看简介,感觉很好,
Smart support for redis-cluster (Redis >= 3.0).
说明支持 redis-cluster 3.0
但是,仔细找一下cluster的配置,你会发现很蛋疼
实践是唯一验证标准,测试一下。
报错
那就说明格式有问题咯
实在没办法,百度,找了好几个小时,全中国大陆,没有一个人对这个有发表过感慨
那我就做第一个吃草的人吧
自己动手,看源代码,写了下面这么一段
胜利永远属于敢于尝试的人,成功了!
测试
yiyi barbarbar
然后,删除服务器列表当中,剩下最后两个,修改 yiyi为 88888,然后执行,会发现,一样成功
然后,再恢复服务器列表,剩下中间两个,直接 get yy,会得到 88888
完美
既然环境已经在前面一篇文章当中搭建好了
http://zhoushouby.blog.51cto.com/9150272/1560505
那么接下来,就是要如何灵活调用 redis cluster 发挥功效的时候了。
大家都知道,我们redis是用来辅助mysql,减少压力,我们一般都是通过web前端来调用redis API接口,从而实现redis 功效,但是,有真正干过这回事的童鞋肯定知道,不管是ruby还是jedis,甚至是lua,对于一个全新的redis概念,cluster 3.0,之前的所有client都不能支持了。我们可以看一下官网的说法:
一共是5个可以支持的
但是,redis-cli,我们可以不用去看他了,这是后台管理工具,不能用作前端
redis-rb-cluster,这个可以用,但是需要自己写脚本,麻烦
redis-py-cluster,也不错,但是她已经停止服务了,6个月前。那就别往坑了跳
Predis ,这个好,实在是good,而且最近还是很活跃。
Jedis,这个好,但是这个是java的,不适合放在前端
所以,毫无疑问,选择Predis,其实,在redis 2.6的时候 ,就已经知道Predis这个东西了,但是之前先比phpredis之前,略逊了一点,因为他是纯php代码,而phpredis是C编写,所以略胜出。不过到这个之后了,就不再去比较这些了,能先给我用着,就算很好的啦。
说干,就干
Predis 官网 https://github.com/nrk/predis
看简介,感觉很好,
Smart support for redis-cluster (Redis >= 3.0).
说明支持 redis-cluster 3.0
但是,仔细找一下cluster的配置,你会发现很蛋疼
实践是唯一验证标准,测试一下。
报错
[root@server22 ~]# cat /var/log/php-fpm/www-error.log [06-Oct-2014 09:40:44] PHP Parse error: syntax error, unexpected '[' in /apache/phpredis/predis/zhou.php on line 6 [06-Oct-2014 09:40:44] PHP Parse error: syntax error, unexpected '[' in /apache/phpredis/predis/zhou.php on line 6 [06-Oct-2014 09:41:59] PHP Warning: require(Autoloader.php): failed to open stream: No such file or directory in /apache/phpredis/predis/zhou.php on line 2 [06-Oct-2014 09:41:59] PHP Fatal error: require(): Failed opening required 'Autoloader.php' (include_path='.:/usr/share/pear:/usr/share/php') in /apache/phpredis/predis/zhou.php on line 2 [06-Oct-2014 09:42:01] PHP Warning: require(Autoloader.php): failed to open stream: No such file or directory in /apache/phpredis/predis/zhou.php on line 2 [06-Oct-2014 09:42:01] PHP Fatal error: require(): Failed opening required 'Autoloader.php' (include_path='.:/usr/share/pear:/usr/share/php') in /apache/phpredis/predis/zhou.php on line 2 |
实在没办法,百度,找了好几个小时,全中国大陆,没有一个人对这个有发表过感慨
那我就做第一个吃草的人吧
自己动手,看源代码,写了下面这么一段
<?php require 'autoload.php'; $servers = array( 'tcp://10.1.3.21:8021', 'tcp://10.1.3.22:8022', 'tcp://10.1.3.23:8023', 'tcp://10.1.3.24:8024', 'tcp://10.1.3.25:8025', 'tcp://10.1.3.26:8026', ); $client = new Predis\Client($servers, array('cluster' => 'redis')); $client->set("yiyi", "barbarbar"); $yiyi = $client->get("yiyi"); echo $yiyi; ?> |
测试
yiyi barbarbar
然后,删除服务器列表当中,剩下最后两个,修改 yiyi为 88888,然后执行,会发现,一样成功
然后,再恢复服务器列表,剩下中间两个,直接 get yy,会得到 88888
完美
相关文章推荐
- redis 3.0 cluster 集群 学习之路篇 [3]
- redis 3.0 cluster 集群 学习之路篇 [2]
- redis 3.0 cluster 集群 学习之路篇 [1]
- redis 3.0 cluster 集群 学习之路篇(资料汇总)
- redis 3.0 cluster 集群 学习之路篇(资料汇总)
- Redis 3.0 cluster 集群环境搭建
- redis学习笔记(二)JedisCluster + redis 3.2.5集群
- Redis3.0 Cluster集群安装
- Redis 学习笔记(十五)Redis Cluster 集群扩容与收缩
- Redis 学习笔记(十五)Redis Cluster 集群扩容与收缩
- redis 学习笔记(6)-cluster集群搭建
- Redis 3.0 Cluster集群配置
- 分布式架构学习之:使用Redis3.0集群实现Tomcat集群的Session共享
- Redis集群 redis cluster in 3.0
- 结合redis设计与实现的redis源码学习-22-集群(cluster.c)
- 分布式架构学习之:032--使用Redis3.0集群实现Tomcat集群的Session共享
- Redis3.0集群搭建和测试(cluster)
- Redis学习笔记六——搭建redis集群(非分布式真正的cluster)
- redis 学习笔记(6)-cluster集群搭建
- Redis 学习笔记(十五)Redis Cluster 集群扩容与收缩