您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關基于Redis無序集合實現禁止多端登錄功能的方法的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
前言
一個集合類型可以存儲最多2^32 -1 個字符串
集合類型在redis內部使用值為空的散列表(hash table)實現,所以集合中的加入或刪除元素等時間復雜度為O(1)。
集合具有元素唯一性。
應用背景
多個應用端假設名稱叫做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是分開的)
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無序集合實現禁止多端登錄功能的方法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。