码迷,mamicode.com
首页 > 其他好文 > 详细

redis相关

时间:2016-01-15 06:18:49      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:

redis 安装

wget http://download.redis.io/redis-stable.tar.gz
tar zxvf redis-stable.tar.gz
cd redis-stable.tar.gz
make
make install

无权限机器,可以采用rpm或者apt-get或者等等别 的工具装。

 

redis  php扩展安装

可以采用phpize方法编译扩展
tar xzvf phpredis-2.2.7.tar.gz
cd ./phpredis-2.2.7
/yourPhpBin/phpize
./configure --with-php-config=/home/work/odp2/php/bin/php-config
make
make install
扩展放入extension目录,并修改php.ini

可能会遇到float point exception的情况,系扩展由高版本gcc编译,当前环境是低版本gcc构建的,因此会出现该问题。

redis 实现加锁

  项目中使用redis 做缓存,做流量控制等

  下面简单的介绍下用redis 来控制访问,简单的讲就是锁机制

  使用到的函数可能有setNx,expire,set,multi,exec等 

$lockKey = $account."_lock";
$lockValue = rand(1,500);
$lockTime = 100;
$retTrans = $redisC->multi()
->setNx($lockKey,$lockValue)
->expire($lockKey,$lockTime)
->exec();

//取setNx的结果
$lockRet = $retTrans[0];
//several process ,concurrence
//get account_lock and call the bduss interface
if ($lockRet){

  //获得锁,执行操作
    update();
  //去锁
  //判断是否是先前 加的锁(即同一进程加的锁),排除因为锁失效(时间过期)导致别的进程访问接口进而删除该进程的同名锁
  $tmp = $redisC->get($lockKey);
  if ($tmp == $lockValue){
   //var_dump("去除锁");
   $redisC->del($lockKey);
  }
}

redis相关

标签:

原文地址:http://www.cnblogs.com/OldJade/p/5132144.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!