美文网首页php
redis 应用场景

redis 应用场景

作者: ysp123 | 来源:发表于2019-03-14 17:03 被阅读0次

1、redis是项目中比较常见使用的内存型数据库,具有以下方面的特点:
1、redis是纯内存型的数据库。
2单线程模型,减少线程上下文切换。
3、非阻塞IO,IO多路复用,将数据库的开、关、读、写都转换成了事件,减少了线程切换时上下文的切换 和竞争。
4、Redis全程使用hash结构,读取速度快,还有一些特殊的数据结构,对数据存储进行了优化。
2、使用方式
基本连接:

$ip_addr='127.0.0.1';
$port=6379;
$redis  = new Redis();
$redis->connect(ip_addr,$port);
$redis->auth($password);   //config设置密码时使用
$redis->select(); //库选择,0 -- 15

hash结构数据缓存:

//缓存用户信息,文章,商品等
$id="xxxx";
$redis->hmset(‘user_’.$id,['name'=>'xxxxx',  'sex'=>1,  'addr'=>'xxxxxxxxxf']);
var_dump($redis->hgetall('user_'.$id));

字符串:

//手机验证码
$redis->setex('15689889565', 60, 3455);  //验证码60秒过期
//计数器
$redis->incr($key);  //自增
$redis->incrby($key, $increase_num);  //按量增加

防商品超发

//计数器方式
$max_num = 10;  //模拟商品限购数量
$pro_id = 453645;  //模拟商品id
if($redis->incr($pro_id) > $max_num){
    echo "下单失败";
    exit();
}
echo "下单成功!";
//入库操作


//事务方式
$len = $redis->get('num');
$total = 10;  //商品总数
if($len < $total){
       $redis->watch('list);  //可写在判断条件外面 在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断
       $redis->multi();
       $redis->hmset('order',['order_id'=>'xxxxx','user'=>'xxxx','pro'=>'xxxxxx']);
       $redis->set('num', $len+1);
       $result = $redis->exec();   //执行事务
        if($result){
              echo "成功";
              exit();
        }else{
              echo "失败,请继续购买!";
              exit();
        }
}else{
        exit('抢光了!');
}

缓存瞬时操作量大的操作:

//点赞,弹幕等
$redis->hset('article:id', 'click', xxxx);   //点赞
$redis->hincrby('article:id', 'click', 1);    //点赞增加

订单延时支付:

$redis->setex($key, 5, 'xxxxxx');  //设置变量 5秒过期

//过期事件订阅
$redis->setOption(\Redis::OPT_READ_TIMEOUT, -1);
$db_id = 0;
$redis->psubscribe([__keyevent@$db_id__:expired], 'keycallback');
function keycallback($redis, $pattern, $chan, $msg){
    echo "Pattern: $pattern \r\n";
    echo "Channel: $chan \r\n";
    echo "Payload: $msg \r\n";
}
//cli 模式执行订阅事件

相关的代码git地址:https://github.com/yspwf/redis_application
其次是网络上大同小异的总结:https://my.oschina.net/PHPDOTAER/blog/1814733

相关文章

  • Redis Learning

    应用场景:redis 适用于小而热的数据 Redis应用场景 Redis作者谈Redis应用场景我们在应用redi...

  • Redis分享一

    Redis介绍 开源免费的高性能key-value数据库 Redis的应用场景 Redis作者提出的九个应用场景 ...

  • 面试题-汇总

    1.Redis面试题 1.说说你项目中redis的应用场景 说一个redis的应用场景,业务埋点 2.redis是...

  • redis场景应用

    抢购 使用push pop防止物品库存为负数

  • redis场景应用

    redis场景应用 redis存储类型:string(字符串)、hash(哈希)、list(列表)、set(无序集...

  • Redis基础知识及安装教程

    什么是redis redis应用场景 redis下载安装 下载地址:http://download.redis.i...

  • 云数据库 Redis的应用与实践

    Redis缓存应用场景 对于查询较为频繁的数据,可以缓存至Redis中,以提高读取的性能; 场景概述 缓存应用实施...

  • Redis缓存总结

    Redis 原理及应用(1)--数据类型及底层实现方式redis学习(八)——redis应用场景 --不错哦 Re...

  • redis 部分详解

    这里我们通过几个场景,不同维度说下Redis的应用。 高性能适合当做缓存 缓存是Redis最常见的应用场景,之所有...

  • day15(redis 搭建)

    1、Redis介绍 1.1、redis是什么? 1.2、重要特性 1.3、Redis应用场景 第二章、Redis ...

网友评论

    本文标题:redis 应用场景

    本文链接:https://www.haomeiwen.com/subject/knjcmqtx.html