基于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
      }
      复制代码
用到的方法
  1. sadd key_set value 设置值到set中
  2. sismember key_set value 判断值时候存在key_set里面
  3. srem key_set value 移除指定值
  4. smembers key_set 获取所有的value

转载于:https://juejin.im/post/5c00c34be51d45735a41d673

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值