为了账号安全,请及时绑定邮箱和手机立即绑定

REDIS-pipeline 管道开启后可以使用zrank判断键是否存在吗?

REDIS-pipeline 管道开启后可以使用zrank判断键是否存在吗?

PHP
莫回无 2019-01-29 20:04:50
<?php $redis->pipeline();            if(count($productIds) > 1){                foreach($productIds as $key=>$productId)                 {                    foreach($productIds as $k => $memberId){                        if($productId == $memberId){                            continue;                         }                        //成员为每个商品同时添加购物车的商品, 分数为同时添加到购物车的次数                         if($redis->ZRANK(SELF::PRODUCT_RALATION_KEY_PREFIX.$productId,$memberId) !== FALSE){                            //已存在, 相关性分数 +1                             $redis->ZINCRBY(SELF::PRODUCT_RALATION_KEY_PREFIX.$productId,1,$memberId);                         }else{                            //不存在, 创建相关性 member                             $redis->ZADD(SELF::PRODUCT_RALATION_KEY_PREFIX.$productId,1,$memberId);                         }                     }                 }             } $redis->exec();先上代码,现在在做一个商品关联性的数据保存到redis,当两个商品同时出现在订单时,就给每个商品创建zset,后序两件商品再同时出现就要进行自增操作,这样的逻辑用pipeline可行吗,找了好久没找到相关资料,求说明一下
查看完整描述

1 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

pipeline 是减少网络开销了 一次网络请求发送多个redis操作命令 你可以将最终要执行的命令在你的业务代码最终结果得到 然后交给pipeline 执行

查看完整回答
反对 回复 2019-01-29
  • 1 回答
  • 0 关注
  • 824 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信