海量用户通讯系统-Redis 用户验证分析|学习笔记

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 快速学习海量用户通讯系统-Redis 用户验证分析

开发者学堂课程【Go 语言核心编程 - 面向对象、文件、单元测试、反射、TCP 编程:海量用户通讯系统-Redis 用户验证分析】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/626/detail/9807


海量用户通讯系统-Redis 用户验证分析

 

内容简介

一.Redis 适用类型

二.添加 Redis 用户

三.在服务器中表示用户信息

四.建立连接池

 

一.Redis 适用类型

在我们已经将服务器和客户端的结构进行合理的改进后,程序就可以进行更加复杂的业务逻辑。之前我们将用户名和密码明确的写了出来,这在实际开发中是不太可能的,所以我们需要做以下的工作。我们需要在redis里面验证用户名和密码是否正确,是否存在登录,否则会退出系统并给出相应的处理。针对这一步骤的代码量也会非常大。

 

二、添加 Redis 用户

image.png

首先需要在 Redis 手动添加测试用户,就是在数据库中明确存在的用户。在登录成功后,我们再完成真实的注册,这就需要我们增加一个Redis数据库。将用户信息存入Redis 中,怎样做才会比较合理呢?我们需要挑一种高效且 key 不能重复的数据结构,因此我们不能使用队列结构,只能使用 hash 结构。Users 是 hash 的名称,由它延伸出去。假设有一个100号用户信息存入,同时还有一个200号用户信息存入,在查找数据库中是否有这两名用户时,我们只需在 users 中进行查找。

 

三.在服务器中表示用户信息

显然,在数据库中是没有一种数据结构可以来描述用户信息的。我们在服务器中建立一个 model 数据,首先建立一个 user.go,先定义一个 user 结构体。这个结构体中包含哪些字段呢?至少包括用户的 ID,用户的密码。用户的名字。还可以加许多用户的性别电子邮件,包括他的好友等。现在迫切需要的只是他的ID、密码和用户名。

1. 然后建立一个数据库,访问对象user.dao.go,dao,data.,access,object都是数据访问对象。

2. 编写对 user 对象操作的各种方法,主要就是增删改查。

3. 在我们登录注册时,会发现各种各样的错误,因为错误种类会比较多,所以我们需要自定义错误,编写一些错误的信息。error. go是用户自定义的错误。

4. 如果user process要进行数据的交互,就是客户端与服务器端的交互,我们就会使用utils.操作。如果 user process 或 SMS process 与 Redis 之间进行数据交互,我们就会使用 dao 完成对数据库的操作。

 

四.建立连接池

既然要完成对 redis 的操作,我们就需要连接 redis。连接 redis 有两种方法,一是操作一次就连接一次,这种效率会比较低下。第二种方法就是事先初始化一些redis的连接词,当我们需要操作时,就让 userdao 去连接,操作后再回放回去,效率就会大大提高。因此,我们还需要建一个连接池。首先需要知道连接池是服务器的维护,让数据库与Red is的连接池建立关系。在操作时需要连接哪一项,就在这两项中建立一根连接,在使用完之后再将这根连接放回至连接池中,注意连接池是由Redis.go进行维护。

image.png

以上是 Redis 连接的示意图。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
19天前
|
存储 NoSQL Redis
Redis 新版本引入多线程的利弊分析
【10月更文挑战第16天】Redis 新版本引入多线程是一个具有挑战性和机遇的改变。虽然多线程带来了一些潜在的问题和挑战,但也为 Redis 提供了进一步提升性能和扩展能力的可能性。在实际应用中,我们需要根据具体的需求和场景,综合评估多线程的利弊,谨慎地选择和使用 Redis 的新版本。同时,Redis 开发者也需要不断努力,优化和完善多线程机制,以提供更加稳定、高效和可靠的 Redis 服务。
29 1
|
1月前
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
68 6
|
29天前
|
NoSQL 数据可视化 Linux
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
本文介绍了Redis的两个可视化管理工具:付费的Redis Desktop Manager和免费的Another Redis DeskTop Manager,包括它们的下载、安装和使用方法,以及在使用Another Redis DeskTop Manager连接Redis时可能遇到的问题和解决方案。
93 1
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
|
12天前
|
缓存 监控 NoSQL
Redis 缓存穿透的检测方法与分析
【10月更文挑战第23天】通过以上对 Redis 缓存穿透检测方法的深入探讨,我们对如何及时发现和处理这一问题有了更全面的认识。在实际应用中,我们需要综合运用多种检测手段,并结合业务场景和实际情况进行分析,以确保能够准确、及时地检测到缓存穿透现象,并采取有效的措施加以解决。同时,要不断优化和改进检测方法,提高检测的准确性和效率,为系统的稳定运行提供有力保障。
42 5
|
26天前
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
186 3
|
7天前
|
JavaScript NoSQL Java
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
24 0
|
28天前
|
NoSQL Java Redis
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
这篇文章介绍了如何使用Spring Boot整合Apache Shiro框架进行后端开发,包括认证和授权流程,并使用Redis存储Token以及MD5加密用户密码。
22 0
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
|
1月前
|
存储 Prometheus NoSQL
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
22 3
|
1月前
|
NoSQL 关系型数据库 MySQL
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
本文全面阐述了Redis事务的特性、原理、具体命令操作,指出Redis事务具有原子性但不保证一致性、持久性和隔离性,并解释了Redis事务的适用场景和WATCH命令的乐观锁机制。
171 0
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
|
2月前
|
Oracle NoSQL 关系型数据库
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
303 2
下一篇
无影云桌面