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

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

成都创新互联拥有十余年成都网站建设工作经验,为各大企业提供成都做网站、成都网站设计服务,对于网页设计、PC网站建设(电脑版网站建设)、App定制开发、wap网站建设(手机版网站建设)、程序开发、网站优化(SEO优化)、微网站、主机域名等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了很多网站制作、网站设计、网络营销经验,集策划、开发、设计、营销、管理等网站化运作于一体,具备承接各种规模类型的网站建设项目的能力。

前言

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


网站栏目:基于Redis无序集合实现禁止多端登录功能的方法
网页地址:http://pwwzsj.com/article/gocsoe.html