Python学习第二十天

ops/2025/3/28 7:46:28/

Redis

        Redis 是一个高性能的键值存储数据库,适合存储临时数据或缓存。可以将用户的部分信息(如会话、登录状态、缓存数据)存储在 Redis 中。

安装

点击下载后将zip解压、并配置环境变量path中

使用

        redis默认端口6379,redis-server启动服务,redis-cli客户端连接。

常用命令

数据类型命令描述
通用命令KEYS pattern查找所有符合给定模式 pattern 的键。
DEL key删除指定的键。
EXISTS key检查键是否存在。
EXPIRE key seconds为键设置过期时间(以秒为单位)。
TTL key获取键的剩余过期时间(以秒为单位)。
TYPE key获取键的数据类型。
FLUSHDB清空当前数据库。
FLUSHALL清空所有数据库。
字符串SET key value设置键的值。
GET key获取键的值。
INCR key将键的值加 1(仅适用于整数)。
DECR key将键的值减 1(仅适用于整数)。
INCRBY key increment将键的值增加指定数值。
DECRBY key decrement将键的值减少指定数值。
APPEND key value将值追加到键的现有值末尾。
STRLEN key获取键的值的长度。
哈希HSET key field value设置哈希表中字段的值。
HGET key field获取哈希表中字段的值。
HGETALL key获取哈希表中所有字段和值。
HDEL key field删除哈希表中指定的字段。
HEXISTS key field检查哈希表中字段是否存在。
HKEYS key获取哈希表中所有字段。
HVALS key获取哈希表中所有值。
HINCRBY key field increment将哈希表中字段的值增加指定数值。
列表LPUSH key value将值插入列表的头部。
RPUSH key value将值插入列表的尾部。
LPOP key移除并返回列表的头部元素。
RPOP key移除并返回列表的尾部元素。
LLEN key获取列表的长度。
LRANGE key start stop获取列表中指定范围的元素。
LINDEX key index获取列表中指定索引的元素。
LSET key index value设置列表中指定索引的元素值。
集合SADD key member向集合中添加一个成员。
SREM key member从集合中移除一个成员。
SMEMBERS key获取集合中的所有成员。
SISMEMBER key member检查成员是否在集合中。
SCARD key获取集合的成员数量。
SINTER key1 key2获取多个集合的交集。
SUNION key1 key2获取多个集合的并集。
SDIFF key1 key2获取多个集合的差集。
有序集合ZADD key score member向有序集合中添加一个成员及其分数。
ZREM key member从有序集合中移除一个成员。
ZRANGE key start stop [WITHSCORES]获取有序集合中指定范围的成员(按分数升序)。
ZREVRANGE key start stop [WITHSCORES]获取有序集合中指定范围的成员(按分数降序)。
ZSCORE key member获取有序集合中成员的分数。
ZRANK key member获取有序集合中成员的排名(按分数升序)。
ZREVRANK key member获取有序集合中成员的排名(按分数降序)。
ZCARD key获取有序集合的成员数量。
发布/订阅PUBLISH channel message向指定频道发布消息。
SUBSCRIBE channel订阅指定频道。
UNSUBSCRIBE channel取消订阅指定频道。
事务MULTI开启事务。
EXEC执行事务中的所有命令。
DISCARD取消事务。
脚本EVAL script numkeys key [key ...] arg [arg ...]执行 Lua 脚本。

Redis-Django

安装

pip install django-redis redis

配置

settings.py中配置

CACHES = {"default": {"BACKEND": "django_redis.cache.RedisCache","LOCATION": "redis://127.0.0.1:6379/1",  # Redis 服务器的地址和端口 1是代表数据库 其中 1 是 Redis 数据库的编号(0-15)。"OPTIONS": {"CLIENT_CLASS": "django_redis.client.DefaultClient",}}
}# 如果你想要使用 Redis 作为 session 存储后端
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "default"

测试

  测试连接是否正常

python manage.py shell

正常进入,使用help()命令查看其他命令,使用exit()或者quit()退出即可

测试使用set 和get编写测试程序

# myapp/test_redis.pyimport os
import django
from django.core.cache import cache# 设置 Django 环境 这个很关键否则平时自己写的直接运行不太行
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myweb.settings')
django.setup()def test_redis():# 测试 Redis 连接和基本操作cache.set('test_key', 'test_value', timeout=60)value = cache.get('test_key')if value == 'test_value':print('Redis test passed!')else:print('Redis test failed!')if __name__ == '__main__':test_redis()

使用

        注意测试的时候启动项目这个是token的测试方式可以使用上面的测试方式,放到某个列表中测试下比如首页main.html中测试

python">from django.core.cache import cache# 存储数据到 Redis # timeout 是缓存过期时间,单位为秒
cache.set('userid+token', 'token', timeout=60)# 从 Redis 获取数据
value = cache.get('userid+token') is None
# Token过期需要重新登陆
print(value)

http://www.ppmy.cn/ops/167417.html

相关文章

AI视频生成产品体验分享(第2趴):Vidu、Hailuo、Runway、Pika谁更胜一筹?

hi,大家,继上次体验完可灵、即梦和pixverse,今天打算从产品经理的角度再研究下Vidu、Hailuo、Runway、Pika这几款产品!欢迎加入讨论! 一、产品简介 1. Vidu:国产自研的「一致性标杆」 📌官网…

目标检测——清洗数据

清洗VOC格式数据集代码示例 import os import xml.etree.ElementTree as ETdef process_annotations(image_folder, annotation_folder):# 遍历标签文件夹中的所有XML文件for xml_file in os.listdir(annotation_folder):if not xml_file.endswith(.xml):continuexml_path os…

如何基于Gone编写一个Goner对接Apollo配置中心(下)—— 对组件进行单元测试

项目地址:https://github.com/gone-io/gone 原文地址:https://github.com/gone-io/goner/blob/main/docs/test_goner.md 本文介绍的例子,代码在:https://github.com/gone-io/goner/blob/main/apollo 文章目录 引言编写“可测试”的…

Rust + WebAssembly 实现康威生命游戏

1. 设计思路 1.1 选择有限的世界 康威生命游戏的世界是 无限二维网格,但由于 计算机内存有限,我们可以选择三种有限宇宙方案: 动态扩展:仅存储“活跃区域”,按需扩展(可能无限增长)。固定大小…

Matlab 四分之一车辆被动悬架和模糊pid控制对比

1、内容简介 Matlab 183-四分之一车辆被动悬架和模糊pid控制对比 可以交流、咨询、答疑 2、内容说明 略 3.1 车辆多自由度模型建立 对于车辆动力学,一般都是研究其悬架系统,悬架系统由轮胎,轮胎空气,弹簧,减震器和…

Pytorch使用手册—自定义 C++ 和 CUDA 运算符(专题五十一)

你将学到什么 如何将用 C++/CUDA 编写的自定义运算符与 PyTorch 集成如何使用 torch.library.opcheck 测试自定义运算符先决条件 1. PyTorch 2.4 或更高版本 2. 对 C++ 和 CUDA 编程有基本了解 注意 本教程也适用于 AMD ROCm,无需额外修改。 PyTorch 提供了一个庞大的运算符库…

基于微信小程序的网上商城

4系统概要设计 4.1 概述 本系统基于Web服务模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示: 图4-1 系统工作原理图 4.2 系统结构 本系统架构网站,本系统的…

Linux内核传输层UDP源码分析

一、用户数据包协议(UDP) 1.UDP数据报头 UDP 提供面向消息的不可靠传输,但没有拥塞控制功能。很多协议都使用 UDP,如用于 IP 网络传输音频和视频的实时传输协议 (Real-time Transport Protocol,RTP),此类型…