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

Java21 + SpringBoot3整合Redis,使用Lettuce连接池,推荐连接池参数配置,封装Redis操作 近日心血来潮想做一个开源项目,目标是做一款可以适配多端、功能完备的模板工程,包含后台管理系统和前台系统,开发者基于此项目进行裁剪和扩展来完成自己的功能开发。本项目为前后端分离开发,后端基于Java21和开发,后端使用JWT等技术栈,前端提供了vueangularreactuniapp微信小程序等多种脚手架工程。本文主要介绍在项目中如何整合Redis,JDK版本是Java21。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.youkuaiyun.com/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个的)
这里写图片描述

php-redis 中文文档 立即下载

相关推荐

session存入redis实现集群登录

使用redis实现集群登录,将session存入redis,一个方法类,直接配置即可使用

php 连接redis【单机方式】 【集群方式】【redis连接池】

/ 如果 Redis 服务器设置了密码,需要进行认证。// 设置一个键值对。/ /获取键对应的值。// 连接 Redis 服务器。// 输出:Hello Redis!

qq_35720068的博客 800

php成功操作redis cluster集群的实例教程

主要给大家介绍了关于php成功操作redis cluster集群的实例教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

php如何调用redis集群,redis集群的实现及使用php进行调用

本次的文章介绍的是关于redis集群的实现及使用php进行调用,给大家分享一下,有需要的朋友可以参考一下一、搭建redis集群1.概念解释redis 3.0之后版本支持redis-cluster集群,Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。其redis-cluster架构图如下:其结构特点:1、所有的redis节点彼此互联(PING-...

weixin_42394088的博客 1676

信息抽取实战:三元组抽取(限定领域 vs 开放领域)(附代码)

信息抽取实战:三元组抽取 目录信息抽取实战:三元组抽取一、限定领域的三元组抽取比赛介绍数据分析序列标注模型关系分类模型三元组提取总结开放领域的三元组抽取标注平台文本分类新数据进行三元组抽取总结参考文献 一、限定领域的三元组抽取   本项目将会介绍在2019语言与智能技术竞赛的三元组抽取比赛方面的一次尝试。由于该比赛早已结束,当时也没有参加这个比赛,因此没有测评成绩,我们也只能拿到训练集和验证集。但是,这并不耽误我们在这方面做实验。 比赛介绍   该比赛的网址为:http://lic2019.ccf.org.

南有芙蕖 2万+

WinCC动态选择报警记录案例

本例中需要确认查询的时间段以及查询的关键字,然后通过一个按钮来执行报警数据查询脚本,并把查询出的结果加载到当前报警控件中。<本例中数据查询脚本的思路是根据选项组所选定的参数加载相应的归档变量到在线趋势控件,根据设定的查询时间范围设定控件时间轴的开始时间及结束时间。本文以 WinCC V8.0为例,介绍如何动态的查询WinCC报警记录,包括关键字查询/时间&关键字查询,如图1所示。<在WinCC变量管理中创建不同的变量组,并在变量组下创建相应的变量,如图2 所示(下图并非实际变量值)。

weixin_45072604的博客 2707

PHP使用Redis实战实录2:Redis扩展方法和PHP连接Redis的多种方案

PHP使用Redis实战实录系列:我们首先检查$redis->connect()方法的返回值来确定是否成功连接到Redis服务器。如果连接失败,我们可以输出相应的错误信息。如果连接成功,我们再执行一些操作,如$redis->set()、$redis->get()等,并检查每个操作的返回结果来判断是否发生了异常。

挖掘大数据价值,让决策者快速洞悉趋势,让大众读懂数据背后的故事。 8595

爬虫实战:抖音视频搜索数据爬虫开发实战(附完整Python源码)

【代码】抖音视频搜索数据爬虫开发实战(附完整Python源码)

weixin_61226361的博客 3593

PHP连接redis并执行redis相关命令的方法详解

PHP连接redis并执行redis相关命令的方法详解连接redis库的方法共性的运算归类redis服务类函数set 操作增删改查List栈的结构,注意表头表尾,创建更新分开操作Set,没有重复的member,创建更新同操作Zset,没有重复的member,有排序顺序,创建更新同操作Hash,表结构,创建更新同操作 参考文档: https://blog.youkuaiyun.com/rorntuck7/art...

徊忆羽菲 2394

基于Stigmergy的团队LLM wiki协作机制与FastAPI工程实践

大语言模型驱动的知识管理正在改变个人笔记与团队文档的维护方式,但当多人共同维护一个维基时,如何避免版本覆盖、上下文丢失和幻觉污染成为核心挑战。Stigmergy这一源自生物学的协作机制提供了新思路:通过共享环境中的痕迹(如评论、标记、修订历史)实现异步协作,无需实时沟通或中心协调者。本文将原理落地为可工程化的系统,设计Page、Revision、Trace三大实体,并结合向量索引与LLM审查流程,最终用FastAPI与SQLite搭建一个最小可运行原型。从白蚁筑巢到团队知识库,Stigmergy让每个参与者

weixin_34174322的博客 364

AOI检测总误判?五大常见问题与实战解决方案

通过对图像质量、检测程序、外界干扰、算法优化以及设备维护和校准的全面把控,企业可以有效降低误判率,提升AOI检测的准确性和可靠性,为工业生产提供更有力的质量保障。表现描述:在AOI检测时,元器件字符因印刷颜色深浅、模糊或受到灰尘干扰等差异,再加上元件库参数未根据实际生产优化,会使系统误将合格元件判定为不合格,严重影响生产效益和产品质量。优化元件库:着重检测关键差异字符,如型号编码等关键信息,剔除不必要字符的检测项,减少干扰,专注于关键识别的准确性。检测时,根据物料信息动态更新检测参数,使系统适应物料变化。

ALeader_AOI的博客 3492

php redis扩展 Cluster集群

另,在redis-cli 中如果不加-c 参数,则不会自动重定向,不执行命令,只返回信息,提示数据在哪个节点的某个slot中,。1.1.1 redis 会根据 crc16 (一个hash算法,hash的意思就是输入一个数,就返回一个数,一一对应)算法对要存储的数据的key计算hash值,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,通过这个值,去找到对应的插槽所对应的节点,然后直接自动跳转到这个对应的节点上进行存取操作。A和C的slot也无法访问。

王嘞嘞的前端之路 1343

【Godot4自学手册】第一节配置Godot运行环境

Godot是一款自由开源、由社区驱动的 2D 和 3D 游戏引擎!它是一款功能丰富的跨平台游戏引擎,可以通过统一的界面创建 2D 和 3D 游戏。它提供了一套全面的通用工具,因此用户可以专注于制作游戏,而无需重新发明轮子。游戏可以一键导出到多个平台,包括主流的桌面平台(Linux、macOS、Windows)、移动平台(Android、iOS)、基于 Web 的平台以及主机平台。

zhaoyang314的博客 5981

php redis集群demo,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:63...

weixin_42329480的博客 405

YOLOv13必学核心:SKAttention选择性核注意力机制原理 + 实战全拆解

SKAttention的核心思想来源于人类视觉系统的一个重要特性:根据不同的视觉刺激,人眼能够自适应地调整感受野大小。SKAttention将这一生物学原理转化为深度学习中的注意力机制,通过动态选择和融合不同大小的卷积核,实现了自适应的多尺度特征提取。在人类视觉皮层中,不同的神经元具有不同大小的感受野,而且这些感受野的大小会根据视觉刺激的类型动态调整。本文将深入解析SKAttention模块的设计原理、数学基础、实现细节,以及其在YOLOv13目标检测框架中的集成应用,为读者提供全面而深入的技术理解。

FJN110的博客 96

【ArcGIS Pro微课1000例】0073:ArcGIS Pro3.5.2学习版下载及安装教程

ArcGIS Pro 3.5.2安装教程摘要:系统需Windows10及以上,8GB内存(推荐32GB)。安装步骤:1)安装.NET 8.0运行环境;2)执行主程序安装包,按向导完成基础安装;3)安装升级补丁;4)替换AfCore.dll文件并导入注册表。注意安装后删除临时文件节省空间。软件下载地址包含在百度网盘链接。安装过程需依次完成环境配置、主程序安装、补丁更新及破解步骤。

智慧空间实验室 1770

rediscluster php扩展_PHP使用Redis集群 封装RedisCluster类

最近项目要进行升级改造,之前的Redis单例和主从配置的方式,要向Redis集群的方向迁移。于是就简单的封装了RedisCluster类。PHP本身已经有了最底层的方法,这里呢,只是封装了一层,便于开发使用。注意:PHP安装的redis扩展的时候,记得要安装3.0以上的版本,不然会不支持Redis集群的调用方式。classRediscluster{/***集群地址*@vararray*/p...

weixin_39568172的博客 599

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

PHP Redis 集群封装类

<?php /** * Redis 操作,支持 Master/Slave 的负载集群 * * @author V哥 */ class RedisCluster{ // 是否使用 M/S 的读写集群方案 private $_iSUSECluster = false; // Slave 句柄标记 ...

DA6328的博客 408

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

如何使用Predis的RawCommand自定义Redis命令别名:完整指南

Predis是一个灵活且功能齐全的PHP Redis客户端,允许开发者以多种方式与Redis交互。其中,RawCommand是一个强大的功能,它让你能够自定义Redis命令名称,实现更符合项目需求的命令别名。本文将详细介绍如何利用RawCommand创建和使用自定义Redis命令别名,帮助你提升开发效率。 ## 什么是RawCommand? RawCommand是Predis中的一个核心类,位

gitblog_00523的博客 710

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

php 封装 到redis,PHPRedis封装类完整实例 - key

...Hash表的功能。PHP可以模拟实现Hash表的增删改查。通过对key的映射到数组中的一个位置来访问。映射函数叫做Hash函数,存放记录的数组称为Hash表。Hash函数把任意长度的和类型的key转换成固定长度输出。不同的key可能拥有相同的...本文通过摘录,旨为收藏经典。望一起分享共论。class RedisCluster{// 是否使用 M/S 的读写集群方案private isUse...

weixin_39737111的博客 382

Predis架构设计模式:高可用Redis集群的PHP客户端实现

在现代Web应用架构中,Redis作为高性能的内存数据库,被广泛应用于缓存、会话存储和实时数据处理等场景。随着业务规模的增长,单一Redis实例往往无法满足高可用性和扩展性需求,此时Redis集群成为必然选择。然而,PHP开发者在使用Redis集群时,常常面临客户端实现复杂、负载均衡不均、故障转移繁琐等痛点。Predis作为一款优秀的PHP Redis客户端,通过精心设计的架构模式,为这些问题提供...

gitblog_00405的博客 806

Redis集群在PHP项目中的应用陷阱,90%开发者都踩过的坑

掌握PHP分布式缓存Redis集群适配技巧,避开连接超时与数据倾斜等常见问题。适用于高并发Web场景,通过一致性哈希与Predis客户端实现高效读写分离,提升系统稳定性与性能,值得收藏。

VarFun的博客 844

PHP使用Redis实战实录4:单例模式和面向过程操作redis的语法

PHP使用Redis实战实录系列:为了应对不同的场景,redis分为是单机模式、主从模式、哨兵模式、集群模式四种模式。

挖掘大数据价值,让决策者快速洞悉趋势,让大众读懂数据背后的故事。 2069

php操作redis 封装的类

php操作redis 封装的类<?php /** * Redis 操作,支持 Master/Slave 的负载集群 * * @author jackluo */ class RedisCluster{ // 是否使用 M/S 的读写集群方案 private $_isUseCluster = false; // Slave 句柄标记

小小时光的专栏 4744

php操作redis实例,PHP实现操作redis的封装类完整实例

吾爱编程通过这篇文章主要介绍了PHP实现操作redis的封装类,以完整实例形式较为详细的分析了PHP操作redis的自定义类及其相关使用方法,需要的朋友可以参考下/*** Redis 操作,支持 Master/Slave 的负载集群** @author jackluo*/class RedisCluster{// 是否使用 M/S 的读写集群方案private $_isUseCluster = f...

weixin_34091081的博客 156

【PHP分布式缓存实战】:Redis集群适配的5大核心难题与解决方案

解决PHP分布式缓存中Redis集群适配的5大核心难题,涵盖高并发场景下的连接管理、数据分片、故障转移等关键问题,提供稳定高效的缓存方案。深入解析主流客户端实现原理与最佳实践,值得收藏。

LiteTrans的博客 682
上一篇: 视频电商网站 - vuex多个module交互
下一篇: iOS导航栏自定义按钮导致点击范围过大的问题
学习笔记666
博客等级 码龄12年 1047粉丝 1369原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值