應用背景
多個應用端假設名稱叫做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的失效時間 優點 訪問速度快,效率高 無單點故障,可以部...