您的位置:首页 > 数据库 > Redis

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-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个的)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: