使用redis乐观锁实现秒杀

 
 
  1. <?php
  2. header('content-type:text/html;charset=utf-8');  
  3. $redis = new Redis();  
  4. $result = $redis->open('192.168.1.236', 6379 , 5 );  
  5. $redis -> auth('likang');  
  6. //var_dump($redis -> set( 'b' , 123 ));  
  7. //  
  8. //var_dump( $redis -> get('b') );  
  9. //  
  10. //var_dump( $result );exit;  
  11. //echo "<pre>";  
  12. echo "页面被访问了" . $redis->incr('ci'). '<br>';  
  13. echo '总共抢到了' . $redis->lLen('s_kill') . '<br>';  
  14. echo '剩余数量' . $redis->get('s_kill_number'). '<br>';  
  15.   
  16.   
  17. $redis ->  watch('s_kill_number');  
  18.   
  19. $num_ber = $redis -> get('s_kill_number');  
  20.   
  21.   
  22. $redis -> multi();  
  23.   
  24. //print_r( $redis->lGetRange('s_kill',0 , $redis ->lLen('s_kill')));  
  25. //var_dump($num_ber);exit;  
  26.   
  27. if ( $num_ber > 0) {  
  28.     $redis->decr('s_kill_number');  
  29.     $redis->lPush('s_kill', rand(1000, 9999));  
  30.     $redis -> exec();  
  31.     exit('OK''<br>');  
  32. else {  
  33.     $redis -> exec();  
  34.     exit('抢光了''<br>');  
  35. }  

猜你喜欢

转载自blog.csdn.net/echo_hello_world/article/details/80341467