基于Redis無序集合實現禁止多端登錄的方法

基于Redis無序集合實現禁止多端登錄的方法

應用背景

多個應用端假設名稱叫做A和B,禁止用戶從A B同時登錄,A登錄踢B,B登錄踢A

實現思路

設置兩個無序集合a_set, b_set

a b 登錄的時候執行

$redis->sAdd('a_set',$user_id);//A登錄 $redis->sRem('b_set',$user_id);//踢B
$redis->sAdd('b_set',$user_id);//B登錄 $redis->sRem('a_set',$user_id);//踢A

api獲取數據之前判斷該端的id是否在線(AB兩個端的api是分開的)

A判斷:

if($redis->sIsmember('a_set',$user_id)){ ???//true? }else{ ????//false }

B判斷

if($redis->sIsmember('b_set',$user_id)){ ????//true }else{ ????//false }

用到的方法:

sadd?key_set?value?設置值到set中 sismember?key_set?value?判斷值時候存在key_set里面 srem?key_set?value?移除指定值 smembers?key_set?獲取所有的value

更多redis知識請關注redis入門教程欄目。

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享