redis常见使用场景下PHP实现

redis常见使用场景下PHP实现

基于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]);
}

 

 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113831.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • OpenCV中出现“Microsoft C++ 异常: cv::Exception,位于内存位置 0x0000005C8ECFFA80 处。”的异常[通俗易懂]

    OpenCV中出现“Microsoft C++ 异常: cv::Exception,位于内存位置 0x0000005C8ECFFA80 处。”的异常[通俗易懂]1致谢对于OpenCV的安装要感谢网友空晴拜小白提供的教程链接如下:https://blog.csdn.net/sinat_36264666/article/details/73135823?ref=myread#reply教程写的十分详细截图什么的也很好2问题描述今天在安装和测试OpenCV的时候遇到了这样的问题测试代码如下#include&lt;opencv2/opencv.hpp…

    2022年9月29日
    1
  • 消除800个数据中心!联邦政府云计算调查「建议收藏」

    消除800个数据中心!联邦政府云计算调查

    2022年3月6日
    40
  • 百度云生态分享日| 网络技术及应用主题沙龙圆满落幕

    百度云生态分享日| 网络技术及应用主题沙龙圆满落幕

    2022年3月7日
    91
  • c++中按位取反_取反和按位取反

    c++中按位取反_取反和按位取反#include<stdio.h>#include<iostream>usingnamespacestd;voidmain(){//做这类题目抓住两点:第一、无论是以进制表示还是整数形式赋值给变量,都要根据变量相应//的数据类型,表示为…

    2022年8月14日
    1
  • SQL server 2008 r2 安装图文详解

    文末有官网下载地址、百度网盘下载地址和产品序列号以及密钥,中间需要用到密钥和序列号的可以到文末找选择网盘下载的下载解压后是镜像文件,还需要解压一次直接右键点击解如图所示选项,官网下载安装包的可以跳过前两步等待解压完,过程可能会比较慢解压完后双击如图所示选项安装SQLServer2008R2需要.NETFramework3.5SP1支持这

    2022年4月8日
    48
  • 人工神经网络算法

    人工神经网络算法一、人工神经网络算法概念1、神经元正如我们日常生活中,遇到美女眼睛移不开、闻到香味流口水等生理现象等,其实都是神经所支配进行的,这就涉及到神经细胞。神经细胞(nervecell)又称神经元或神经原,是神经系统的结构与功能单位之一。它能感知环境的变化,再将信息传递给其他神经细胞,并发出指令以做出反应。据估计,人类中枢神经系统中约存在1000亿个神经元,仅大脑皮层中就约有140亿。在眼的视网膜上有感光细胞能接受光的刺激,在鼻粘膜上有嗅觉细胞能接受气味的变化,在味蕾中有能接受化学物质刺激的味觉细胞等,这

    2022年6月26日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号