基於Redis無序集合實現禁止多端登入

2021-09-13 01:13:31 字數 581 閱讀 3816

應用背景

多個應用端假設名稱叫做a和b,禁止使用者從a b同時登入,a登入踢b,b登入踢a

實現思路

$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

if($redis->sismember('a_set',$user_id))else

if($redis->sismember('b_set',$user_id))else

用到的方法

sadd key_set value 設定值到set中

sismember key_set value 判斷值時候存在key_set裡面

srem key_set value 移除指定值

smembers key_set 獲取所有的value

redis無序集合set型別詳解

redis中的set是string型別的無序集合,set元素最大可以包含2的32次方 1個元素。利用set集合型別,我們可以快速取出n個key之間的並集 交集 差集等,從而輕鬆解決mysql等資料庫不容易實現這種運算的缺陷。與上篇中list型別不同的是,set集合不允許出現重複的元素,因此set型別...

redis 的無序集合和hash操作

1 往集合新增資料 2 檢視集合所有元素 3 集合刪除操作 4 返回並刪除集合key中乙個隨機的元素 體現集合無序性 5 返回集合中乙個隨機的元素 6 判斷value是否在集合key中,存在返回1 不存在返回0 7 返回集合中的個數 8 把source 中的value 刪除,移動到desc集合中去 ...

基於Redis實現的單點登入

背景 每個web應用都有自己的session,那如何在分布式或者集群環境下統一session,即如何實現單點登入,如下圖 解決方案 把session資料存放在redis,統一管理,向外提供服務介面,redis可以設定過期時間,對應session的失效時間 優點 訪問速度快,效率高 無單點故障,可以部...