在前面我们使用redis-trib创建了集群
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、重新创建集群
创建集群:
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
采用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
,代码如下:
// 引入库(自动加载)
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');
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