redis集群 - 使用php连接redis集群、redis自定义命令封装

在前面我们使用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个的)
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值