免费公司注册网站,网站开发的英文参考文献,建e网效果图,动力网页设计制作公司一个账号#xff0c;多台设备同时登陆的问题#xff0c;设计以及实现 参考这篇文章#xff1a;
https://www.alibabacloud.com/help/zh/tair/use-cases/manage-multi-device-logon-from-a-single-user-by-using-tairhash1.0 设计思路
利用的是Redis#xff0c;主设备的保…一个账号多台设备同时登陆的问题设计以及实现 参考这篇文章
https://www.alibabacloud.com/help/zh/tair/use-cases/manage-multi-device-logon-from-a-single-user-by-using-tairhash1.0 设计思路
利用的是Redis主设备的保存问题可使用MySQL进行设置实现 同时允许3台设备在线
只是设计思路数据库的使用可以按照公司的要求 多设备 Redis实现的设计 参考 云原生内存数据库设计
Tair自研的拓展数据结构TairHash实现用户多设备登录管理。TairHash不仅支持Key级别的过期设置同时还支持Field级别的过期操作。可以将用户ID设置为Key、将设备类型设置为Field、将用户Token设置为Value同时可对Field设置过期时间简单又高效。
2.0 基于tair 实现
安装依赖
pip3 install tair代码
# -*- coding: utf-8 -*-
#!/usr/bin/env python
import time
from tair import Tair
from tair import ResponseErrordef get_tair() - Tair:该方法用于连接Tair实例。* hostTair实例连接地址。* portTair实例的端口号默认为6379。* usernameTair实例的账户可不填使用默认账号登录。* passwordTair实例的密码。tair: Tair Tair(host r-bp************.redis.rds.aliyuncs.com,port 6379,db 0,username ,password D****123,)return tairdef add_user_pass(userID: str, device: str, token: str, timeout: int) - bool:该方法为通过EXHSET命令将用户登录信息存入TairHash数据结构中。* 将用户IDuserID设置为Key。* 将设备类型device设置为Field。* 将用户Tokentoken设置为Value。* 将用户Token的过期时间设置为Ex。try:tair get_tair()ret tair.exhset(userID, device, token, extimeout)return ret 1except ResponseError as e:print(e)return Falsedef print_up(userID):该方法打印未过期的用户Token信息。for i in tair.exhgetall(userID):print({}:{}.format (userID,i))if __name__ __main__:tair get_tair()# 添加user1、user2测试数据。user_1 user1user_2 user2add_user_pass(user_1, phone, token_123, 5)add_user_pass(user_1, pad, token_124, 10)add_user_pass(user_2, pad, token_456, 10)add_user_pass(user_2, pc, token_457, 10)# 等待6s。print(Wait 6 seconds)time.sleep(6)# 打印此时未过期的用户Token信息。print_up(user_1)print_up(user_2)
3.0 基于Redis的实现(配合自己公司的框架)