帮助中心/最新通知

质量为本、客户为根、勇于拼搏、务实创新

< 返回文章列表

【服务器相关】基于Redis无序集合如何实现禁止多端登录功能

发表时间:2025-06-16 03:46:00 小编:主机乐-Yutio

前言

一个集合类型可以存储最多2^32 -1 个字符串

集合类型在redis内部使用值为空的散列表(hash table)实现,所以集合中的加入或删除元素等时间复杂度为O(1)。

集合具有元素唯一性。

本文主要给大家介绍了基于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是分开的)


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

总结

本篇文章到此结束,如果您有相关技术方面疑问可以联系我们技术人员远程解决,感谢大家支持本站!


联系我们
返回顶部