【Redis实战】快速简单搭建聊天室02——准备工作

本文涉及的产品
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
云原生内存数据库 Tair,内存型 2GB
简介: 【Redis实战】快速简单搭建聊天室02——准备工作

大家拿到的项目初始目录结构如下:

.
├── Pipfile
├── Pipfile.lock
├── __pycache__
│   └── main.cpython-36.pyc
├── answer
│   ├── RedisUtil.py
│   └── __pycache__
│       └── RedisUtil.cpython-36.pyc
├── main.py
├── static
│   ├── css
│   │   ├── spectre-icons.css
│   │   └── spectre.min.css
│   └── js
│       ├── jquery-3.3.1.min.js
│       ├── js.cookie.js
│       ├── login.js
│       └── room.js
├── templates
│   ├── base.html
│   ├── chatroom.html
│   └── index.html
└── your_code_here
└── RedisUtil.py

其中主要文件说明:

  • Pipfile与Pipfile.lock:是Pipenv配置运行环境的文件,用来记录项目所需要的第三方库。
  • answer文件夹下面的RedisUtil.py:本项目的参考答案,读者在自己完成项目以后可以将自己的代码与参考代码进行对比。
  • main.py、static、templates文件夹:本项目网站后台和前台的相关代码,读者不需要关心。

大家只需要修改your_code_here文件夹下面的RedisUtil.py就能完成本项目。



搭建项目运行环境

macOS/Linux终端或者Windows的CMD中进入本项目的文件夹

例如:~/mongoredis/chapter_project_2或者C:\mongoredis\chapter_project_2

执行命令安装项目运行的Python环境:

pipenv install

                                             
                                             

安装项目运行环境


安装完成以后,执行命令进入虚拟环境:

pipenv shell


进入虚拟环境

输入以下命令运行网站:

macOS/Linux:

01    export FLASK_APP=main.py

02    flask run

其中,主要说明如下:

  • 第1行代码添加环境变量,变量名为FLASK_APP,值为mian.py
  • 第2行代码通过flask启动网站


windows:

01    set FLASK_APP=main.py

02    flask run


启动网站


执行命令以后,打开浏览器,输入网址http://127.0.0.1:5000,可以看到如下图所示的页面。

此时,无论输入任何昵称,一定会提示昵称已经被占用,无法进入聊天室页面。

无论输入任何昵称都会提示昵称已经被占用

打开your_code_here文件夹下面的RedisUtil.py文件,大家看到的初始代码。

RedisUtil.py初始代码

大家需要实现RedisUtil类下面的各个方法,从而使聊天网站可以正常工作。所有需要大家修改的地方在代码注释中都已经作了提示。

相关实践学习
基于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
目录
相关文章
|
1月前
|
NoSQL 算法 安全
Redis6入门到实战------ 四、Redis配置文件介绍
这篇文章详细介绍了Redis配置文件中的各种设置,包括单位定义、包含配置、网络配置、守护进程设置、日志记录、密码安全、客户端连接限制以及内存使用策略等。
Redis6入门到实战------ 四、Redis配置文件介绍
|
1月前
|
NoSQL 安全 Java
Redis6入门到实战------ 三、常用五大数据类型(字符串 String)
这篇文章深入探讨了Redis中的String数据类型,包括键操作的命令、String类型的命令使用,以及String在Redis中的内部数据结构实现。
Redis6入门到实战------ 三、常用五大数据类型(字符串 String)
|
1月前
|
NoSQL 关系型数据库 Redis
Redis6入门到实战------ 九、10. Redis_事务_锁机制_秒杀
这篇文章深入探讨了Redis事务的概念、命令使用、错误处理机制以及乐观锁和悲观锁的应用,并通过WATCH/UNWATCH命令展示了事务中的锁机制。
Redis6入门到实战------ 九、10. Redis_事务_锁机制_秒杀
|
1月前
|
NoSQL Java Redis
Redis6入门到实战------ 八、Redis与Spring Boot整合
这篇文章详细介绍了如何在Spring Boot项目中整合Redis,包括在`pom.xml`中添加依赖、配置`application.properties`文件、创建配置类以及编写测试类来验证Redis的连接和基本操作。
Redis6入门到实战------ 八、Redis与Spring Boot整合
|
22天前
|
运维 监控 NoSQL
【Redis】哨兵(Sentinel)原理与实战全解~炒鸡简单啊
Redis 的哨兵模式(Sentinel)是一种用于实现高可用性的机制。它通过监控主节点和从节点,并在主节点故障时自动进行切换,确保集群持续提供服务。哨兵模式包括主节点、从节点和哨兵实例,具备监控、通知、自动故障转移等功能,能显著提高系统的稳定性和可靠性。本文详细介绍了哨兵模式的组成、功能、工作机制以及其优势和局限性,并提供了单实例的安装和配置步骤,包括系统优化、安装、配置、启停管理和性能监控等。此外,还介绍了如何配置主从复制和哨兵,确保在故障时能够自动切换并恢复服务。
|
1月前
|
存储 NoSQL 算法
Redis6入门到实战------ 三、常用五大数据类型(列表(List)、集合(Set)、哈希(Hash)、Zset(sorted set))
这是关于Redis 6入门到实战的文章,具体内容涉及Redis的五大数据类型:列表(List)、集合(Set)、哈希(Hash)、有序集合(Zset(sorted set))。文章详细介绍了这些数据类型的特点、常用命令以及它们背后的数据结构。如果您有任何关于Redis的具体问题或需要进一步的帮助,请随时告诉我。
|
30天前
|
消息中间件 存储 NoSQL
redis实战——go-redis的使用与redis基础数据类型的使用场景(一)
本文档介绍了如何使用 Go 语言中的 `go-redis` 库操作 Redis 数据库
redis实战——go-redis的使用与redis基础数据类型的使用场景(一)
|
1月前
|
NoSQL Java Linux
Redis6入门到实战------ 六、Redis_Jedis_测试
这篇文章介绍了如何使用Jedis客户端连接Redis,并进行基本的数据类型操作测试,包括字符串、列表、集合、哈希和有序集合的相关API使用示例。
Redis6入门到实战------ 六、Redis_Jedis_测试
|
23天前
|
缓存 NoSQL Java
惊!Spring Boot遇上Redis,竟开启了一场缓存实战的革命!
【8月更文挑战第29天】在互联网时代,数据的高速读写至关重要。Spring Boot凭借简洁高效的特点广受开发者喜爱,而Redis作为高性能内存数据库,在缓存和消息队列领域表现出色。本文通过电商平台商品推荐系统的实战案例,详细介绍如何在Spring Boot项目中整合Redis,提升系统响应速度和用户体验。
44 0
|
1月前
|
NoSQL Redis
Redis6入门到实战------ 五、Redis的发布和订阅
这篇文章介绍了Redis的发布和订阅机制,包括其基本概念、客户端如何订阅频道以及如何发布消息给订阅者。