php redis的使用

为了降低由于高并发导致的对数据库的频繁读取,采用redis队列的方式可以解决。

先安装redis,然后再到php拓展里打开redis组件

简单使用:

set和get的使用,简单存储和取出操作

<?php
   //连接本地的 Redis 服务
   $redis = new Redis();
   $redis->connect('127.0.0.1', 6379);
   echo "服务器连接成功";
   //设置 redis 字符串数据
   $redis->set("webname", "www.biancheng.net");
   // 获取存储的数据并输出
   echo "获取网站名: " . $redis->get("webname");
?>

也可以存入json格式,取的时候再转换

<?php
//Redis初始化类
if(extension_loaded('redis')) {
    $redis = new Redis();
    $redis->connect("127.0.0.1", "6379");
    $redis->auth("");

    $redis->select(1); //选择 6号库

    $value = array(
        "id"  =>1,
        "name"=>"test1",
        "age" =>15
    );
    $json  = json_encode($value, JSON_UNESCAPED_UNICODE);//转为字符串
    $redis->set("test_val", $json);//存入

    //取数据,重点:注意键值
    $resuilt=$redis->get("test_val);//取值
    $resuilt=json_decode($resuilt,true);//转换
    echo $resuilt['name'];
}else{
    echo "没有安装Redis扩展";
}

队列,Rpush与Lpop,取数据的规则,先存储的数据,先取出来(先进先出)并且移除取出的数据在Redis的存储(取出一条数据就删除这条的存储)

<?php

//Redis初始化类
if(extension_loaded('redis')) {
    $redis = new Redis();
    $redis->connect("127.0.0.1", "6379");
    $redis->auth("");

    $redis->select(5); //选择 5号库
    $value = array(
        "id"  =>2,
        "name"=>"test",
        "age" =>22
    );
    $json  = json_encode($value, JSON_UNESCAPED_UNICODE);
    $redis->rPush("test_key", $json); //RPUSH 键值

    //lPop取出数据,先入先出
    var_dump($redis->lPop("test_key"));
}else{
    echo "没有安装Redis扩展";
}

处理队列

<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->select(5); //选择 5号库
echo '<br>执行开始'.$send_time=date("Y-m-d H:i:s");
while($redis->llen('sms_line')>0){//如果队列中有数据,则取出一条,否则终止线程
	$one_data=$redis->lPop("sms_line");//取出一条数据,先入先出
	$one_data=json_decode($one_data,true);//转换
	//模拟发送sms
	$phone=$one_data['phone'];
	sleep(1);//模拟发送时间1s
}
echo '<br>执行完毕'.$send_time=date("Y-m-d H:i:s");
exit;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值