redis队列玩玩

2024-05-24 17:48
文章标签 redis 队列 玩玩

本文主要是介绍redis队列玩玩,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

$redis = new redis();
$redis->connect('127.0.0.1',6379);
$redis->lpush('name',value);//左进
echo $res = $redis->rpop('name');//右出 一个一个出,出完就减少了
然后用if(empty($res)){die;//就表示已经抢购完了,不需要继续往下走,操作数据库了}
//不完整,下次再玩。

基于redis字符串string类型的简单缓存实现<?php

//简单字符串缓存$redis = new \Redis();
$redis->connect('127.0.0.1',6379);//缓存数据
$redis->set('cache_key',json_encode(['data'=>'这是缓存数据']));//获取缓存数据
$data = $redis->get('cache_key');
print_r(json_decode($data,true));

基于redis列表list类型的简单队列实现

<?php//利用列表list实现简单队列
$redis = new \Redis();
$redis->connect('localhost',6379);//进队列
$redis->rpush('queue_name',json_encode(['user_id'=>5]));
$redis->rpush('queue_name',json_encode(['user_id'=>6]));
$redis->rpush('queue_name',json_encode(['user_id'=>7]));echo "数据进队列完成\n";//可查看队列
$res = $redis->lrange('queue_name',0,1000);
print_r($res);//出队列
$redis->lpop('queue_name');//查看队列
$res = $redis->lrange('queue_name',0,1000);
print_r($res);

基于redis事务的乐观锁实现<?php


//实现乐观锁机制$redis = new \Redis();
$redis->connect('localhost',6379);//监视count的值
$redis->watch('count');//开启事务
$redis->multi();//操作count
$redis->set('count',time());//--------------------------------
//模拟并发下其他进程对count的操作
//redis-cli 执行 $redis->set('count','is simulate');
sleep(10);
//--------------------------------//提交事务
$res = $redis->exec();if($res){echo 'sucesss';return;
}else{echo 'fail';
}

基于redis的发布订阅实现

发布publish.php

<?php
//发布$redis = new \Redis();
$redis->connect('localhost',6379);$redis->publish('msg','来自xxx频道的消息推送');
echo '消息推送成功';$redis->close();

订阅subscribe.php

<?php
//订阅//ini_set('default_socket_timeout',-1);$redis = new \Redis();
$redis->pconnect('localhost',6379);//订阅
echo "订阅频道等待消息推送\n";$redis->subscribe(['msg'],'callfun'); //msg 是频道名//回调
function callfun($redis,$channel,$msg){print_r(['redis'=>$redis,'channel'=>$channel,'msg'=>$msg]);
}

这篇关于redis队列玩玩的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/999099

相关文章

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.

Redis中Stream详解及应用小结

《Redis中Stream详解及应用小结》RedisStreams是Redis5.0引入的新功能,提供了一种类似于传统消息队列的机制,但具有更高的灵活性和可扩展性,本文给大家介绍Redis中Strea... 目录1. Redis Stream 概述2. Redis Stream 的基本操作2.1. XADD

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

Redis的持久化之RDB和AOF机制详解

《Redis的持久化之RDB和AOF机制详解》:本文主要介绍Redis的持久化之RDB和AOF机制,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述RDB(Redis Database)核心原理触发方式手动触发自动触发AOF(Append-Only File)核

Redis分片集群、数据读写规则问题小结

《Redis分片集群、数据读写规则问题小结》本文介绍了Redis分片集群的原理,通过数据分片和哈希槽机制解决单机内存限制与写瓶颈问题,实现分布式存储和高并发处理,但存在通信开销大、维护复杂及对事务支持... 目录一、分片集群解android决的问题二、分片集群图解 分片集群特征如何解决的上述问题?(与哨兵模

SpringBoot连接Redis集群教程

《SpringBoot连接Redis集群教程》:本文主要介绍SpringBoot连接Redis集群教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 依赖2. 修改配置文件3. 创建RedisClusterConfig4. 测试总结1. 依赖 <de