基于Redis无序集合实现禁止多端登录功能的方法

37次阅读
没有评论

共计 774 个字符,预计需要花费 2 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章给大家分享的是有关基于 Redis 无序集合实现禁止多端登录功能的方法的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。

前言

一个集合类型可以存储最多 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 无序集合实现禁止多端登录功能的方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计774字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)