redis集群 - 使用php连接redis集群、redis自定义命令封装
2017-05-03 12:53
676 查看
在前面我们使用redis-trib创建了集群
redis官方文档:
https://redis.io/topics/cluster-tutorial
(这里我们使用的127.0.0.1,我们用php测试集群需要改成具体的地址)
(注意:redis自身的配置文件,bind也需要修改为具体的IP或者0.0.0.0)
1、由于我们之前已经创建过集群,现在重新创建,需要把一些文件清空
清空
2、重新创建集群
注意6个节点要启动了先:
创建集群:
执行:
3、查看节点状态
https://github.com/nrk/predis
(关于composer这个工具,可以看:
http://blog.csdn.net/github_26672553/article/details/51778568)
下载成功之后,我们的项目目录
然后我们开始写代码测试了,在项目根目录新建
ok,成功。
命令行获取该值:
https://redis.io/commands
从redis 2.6开始支持内嵌LUA脚本,需要使用
很类似PHP的
https://redis.io/commands/eval
举例:
我们假设 set name zhangsan ,其中的key是动态的。
假设key和value都是动态的:
(
redis官方文档:
https://redis.io/topics/cluster-tutorial
(这里我们使用的127.0.0.1,我们用php测试集群需要改成具体的地址)
./redis-trib.rb create --replicas 1 10.211.55.13:6379 10.211.55.13:6380 \ 10.211.55.13:6381 10.211.55.13:6479 10.211.55.13:6480 10.211.55.13:6481
(注意:redis自身的配置文件,bind也需要修改为具体的IP或者0.0.0.0)
1、由于我们之前已经创建过集群,现在重新创建,需要把一些文件清空
cd /usr/local/redis
清空
datadir这个目录,该目录下就是我们redis集群的创建之后生成的一些文件。
2、重新创建集群
注意6个节点要启动了先:
创建集群:
cd /usr/local/redis/bin
执行:
./redis-trib.rb create --replicas 1 10.211.55.13:6379 10.211.55.13:6380 \ 10.211.55.13:6381 10.211.55.13:6479 10.211.55.13:6480 10.211.55.13:6481
3、查看节点状态
/redis-trib.rb info 10.211.55.13:6379
php连接redis
采用predis(无需安装扩展,API较多)https://github.com/nrk/predis
#来到项目目录下 cd predis-project/ #执行 composer require predis/predis
(关于composer这个工具,可以看:
http://blog.csdn.net/github_26672553/article/details/51778568)
下载成功之后,我们的项目目录
predis-project下回多出这些文件:
然后我们开始写代码测试了,在项目根目录新建
test.php,代码如下:
<?php // 引入库(自动加载) require_once 'vendor/autoload.php'; // $servers = array( 'tcp://10.211.55.13:6379' // 这里只要加入一个就可以了 ); $options = array('cluster'=>'redis'); // 如果是集群(已经建好的),则要加入 // 连接 $client = new Predis\Client($servers,$options); // 设值 $client->set('age',18); // 取值 echo $client->get('age');
ok,成功。
命令行获取该值:
redis自定义命令封装
redis自带有很多命令(command),从官方文档可以查看:https://redis.io/commands
从redis 2.6开始支持内嵌LUA脚本,需要使用
EVAL "lua脚本内容"的方式。
很类似PHP的
eval(php脚本),可以看这里的脚本:
https://redis.io/commands/eval
举例:
我们假设 set name zhangsan ,其中的key是动态的。
EVAL "return redis.call('set',KEYS[1],'zhangsan')" 1 name
假设key和value都是动态的:
EVAL "return redis.call('set',KEYS[1],ARGV[1])" 1 name lisi
(
1表示key只有一个,value是可以有n个的)
相关文章推荐
- Redis 3.0.5 集群的命令、使用、维护
- CentOS6.5下redis安装部署配置指南、常用命令、主从同步集群、redis-php学习资料整合详解
- 【Redis】搭建集群与如何使用Jedis连接集群
- PHP使用Redis长连接的方法详解
- 王高利:CentOS6.5下redis安装部署配置指南、常用命令、主从同步集群、redis-php学习资料整合详解
- 数据库的连接、索引和Redis的五种数据类型及其操作命令、使用场景
- Redis 3.2.8 集群的命令、使用、维护
- 使用node连接mySQL,封装自定义模块供外部调用
- php使用redis的scan命令时遇到的坑
- Redis 一二事 - 在spring中使用jedis 连接调试单机redis以及集群redis
- PHP中使用Redis长连接笔记
- redis命令详解与使用场景举例——Connection(连接)
- 使用php连接redis
- Redis客户端连接方式Hiredis简单封装使用,连接池、屏蔽连接细节
- 使用自定义证书并忽略验证的HTTPS连接Post请求方式的封装
- 在使用代码连接redis集群时报:no reachable node in cluster,解决办法
- 使用jedis连接单机和集群redis的两种方式
- 使用Jedis连接单机版redis和集群般redis
- 在Kubernetes集群中使用Redis部署PHP留言簿应用程序
- PHP REDIS 使用长连接多数据库存储到最后一个数据库中的问题解决