Redis学习记录之————微博项目
Key设计
全局相关的key:
表名 |
global |
|
列名 |
操作 |
备注 |
Global:userid |
incr |
产生全局的userid |
Global:postid |
Incr |
产生全局的postid |
用户相关的key(表):
表名 |
user |
||
Userid |
Username |
Password |
Authsecret |
3 |
Test3 |
1111111 |
#U*Q(%_ |
用户注册:
/** * 用户注册信息 */ public function userRegister() { $redis = RedisInstance::MasterInstance(); $redis->select(10); $username = 'tinywan'.mt_rand(0000,8888); $password = '123456'; if($redis->get('user:username:'.$username.':userid')){ exit('该用户名没有被使用'); } //获取全局userId $userId = $redis->incr('global:userid'); $redis->set('user:userId:'.$userId.':username',$username); $redis->set('user:userId:'.$userId.':password',$password); $redis->set('user:username:'.$username.':userid',$userId); }
用于登录:
/** * 用于登录信息 */ public function userLogin() { $redis = RedisInstance::MasterInstance(); $redis->select(10); $username = 'tinywan8165'; $password = '123456'; $uid = $redis->get('user:username:'.$username.':userid'); if($uid == false){ exit('该用户名不存在'); } $oldpwd = $redis->get('user:userId:'.$uid.':password'); if($password != $oldpwd){ exit('密码错误'); } echo '登录成功,跳转'; homePrint($uid); }
表名 |
global |
|
列名 |
操作 |
备注 |
Global:userid |
incr |
产生全局的userid |
Global:postid |
Incr |
产生全局的postid |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构