php之yii2簡單redis鎖限制

2021-10-03 16:15:54 字數 1083 閱讀 7850

yii2框架簡單加鎖鎖定本次任務沒執行完之前不允許再請求本次方法,注意這只是簡單實現能應對幾乎所有併發場景,但是對併發有絕對要求的還是要用佇列加非同步處理去實現。

$key

='redis_key_name:'

.'訂單id或其他本次鎖的唯一值'

;//判斷不是空直接中斷本次操作if(

!empty

(yii::-

>

redis

->

get(

$key))

)//確定沒鎖後先賦值redis,鎖上先

yii::-

>

redis

->

set(

$key

,'1');

//隨便打上個1做標識

yii::-

>

redis

->

expire

($key

,300);

//設定鎖的時間,具體看自己的業務場景,一般乙個介面請求不超過60秒

//這裡需要用try catch,防止中途出異常,導致沒解鎖

trycatch

(\throwable$e)

注意:

1、throwable為php7及以上版本的萬能捕獲任何異常,php7以下版本用:exception

2、請確定自己已經在配置檔案配置redis配置

找到config/development.php(開發環境)或config/production.php(生產環境),在』components』 => 中加入,如:

'components'

=>

['redis'

=>

['class'

=>

'basecomponents\base\redisconn'

,'hostname'

=>

'127.0.0.1'

,'port'

=>

6379,]

,]

3、yii如果找不到請在命名空間後加 use yii;

Yii2簡單紀要

網上經常拿yii來模擬ror,從mvc角度,使用體驗及 風格上確實有很多相似的地方。不過看配置檔案發現yii2不止是受rails的影響,同樣有不少spring的影子,最明顯的就是配置檔案中很多ioc和aop的體現。yii和spring都實現了乙個ioc容器來管理物件依賴關係及其生命週期。yii2使用...

Yii2 配置yii2 redis擴充套件

前提 已經安裝redis。一 包檔案安裝 yiisoft yii2 redis extentions.php然後配置vender yiisoft extensions.php檔案 yiisoft yii2 redis array name yiisoft yii2 redis version 2.0...

Yii2 配置yii2 redis擴充套件

前提 已經安裝redis。一 包檔案安裝 yiisoft yii2 redis extentions.php 然後配置vender yiisoft extensions.php檔案 yiisoft yii2 redis array name yiisoft yii2 redis version 2....