redis学習(五)redis実現ショッピングカート
1458 ワード
第二章 商品数の検証はwebアプリケーションが担当し、商品の注文数が変化したときにショッピングカートを更新する を行います.
, ID
connect('127.0.0.1',6379);
function add_to_cart($redis,$session,$item,$count)
{
if ($count<=0)
{
$redis->hDel('cart:'.$session,$item); //
}else{
$redis->hSet('cart:'.$session,$item,$count); //
}
}
//
// (cron)
/**
*
* @param $redis
*/
function clean_full_sessions($redis)
{
$quit = false;
$limit = 1000000;
while (!$quit)
{
$size = $redis->zCard('recent:'); //
if ($size < $limit) // ,
{
sleep(1);
continue;
}else{
$quit = true;
}
}
$end_index = min($size-$limit,100);
$sessions = $redis->zRange('recent:',0,$end_index-1); // id
foreach ($sessions as $sess)
{
$session_key [] = 'viewed:'.$sess; //
$session_key [] = 'cart:'.$sess; //
}
$redis->delete($session_key);
$redis->del('login:',$sessions);
$redis->zrem('recent:',$sessions); //
}