Django中使用redis的方法
一、redis数据操作
1、redis的存储格式为 key-value格式。key是字符串类型,value的类型有5种:string、hash、list、set、zset。
2、redis中关于键的常见的操作:
1、查看左右的键:keys *
2、查看某个键是否存在,存在返回1不存在返回0:exists key1
3、查看键的值对应的数据类型:type key1
4、删除键值对:del key1 key2
5、设置键的过期时间,如果没有指定默认一直存在:expire key seconds
6、查看键的有效时间:ttl key1
7、清空数据库:flushall
3、string类型的基本操作:
1、保存
set key value
保存单个键值对 mset key1 value1 key2 value2
保存多个键值对 setex key seconds value
设置键值和过期时间 append key value追加值
2、获取
get key
获取单个 mget key1 key2 获取多个
3、删除
del key
4、 hash类型的基本操作:
1、保存
hset key field value #设置单个属性 hmset key field1 value1 field2 value2 ... #设置多个属性
2、获取
hkeys key # 获取指定键的所有属性 hget key field # 获取单个属性的值 hmget key field1 field2 ... # 获取多个属性的值 hvals key # 获取所有属性的值
del key # 删除整个hash的键和值 hdel key field1 field2 ... # 删除属性和属性对应的值
4、关于hash类型的个人理解:
可以将hash类型理解为用来存储对象:
5、list类型的基本操作:
1、保存
lpush key value1 value2 ... #从左侧依次插入数据 rpush key value1 value2 ... #从右侧依次插入数据 linsert key before或after 现有元素 新元素 #从指定元素的前或后插入新元素
2、获取
lrange key start stop
start、stop为元素的下标索引,从左侧开始,第一个元素为0,-1标识最后一个元素。获取所有的元素:lrange key 0 -1
3、删除指定元素
lrem key count value
count > 0: 从头到尾移除
count < 0: 从尾到头移除
count = 0: 移除所有
6、set类型的基本操作
特点:无序集合、元素唯一性不重复、没有修改操作
1、增加元素
sadd key member1 member2 ...
2、获取元素
smembers key # 返回所有元素
3、删除指定元素
srem key member1 member2 ...
7、zset类型的数据操作
特点:有序集合、元素唯一性不重复、没有修改操作、每个元素都会关联一个double类型的权重,根据权重从小到大排列
1、增加
zadd key score1 member1 score2 member2 ...
2、获取
zrange key start stop # 根据索引获取 zrangebyscore key min max # 获取权重在min和max之间的数据 zscore key member # 返回成员member的score值
3、删除
zrem key member1 member2 ... # 删除指定元素 zremrangebyscore key min max #删除权重在指定范围的元素
二、redis与python进行交互
1、在虚拟环境中安装redis包:
pip3 install redis
2、调用模块:
from redis import StrictRedis
3、创建对象:
sr = StrictRedis(host='localhost', port=6379, db=0) # 默认就是这样的值,不写也行。
4、用sr这个对象操作redis,将redis中的命令当作函数让sr调用就ok。
三、Django框架中session存储到redis的配置
默认情况下session是存储在数据库中的,但是当用session保存用户的状态时,用户频繁的访问服务器,会增大数据库的压力,也会降低用户访问的速度。为了解决这个问题将session存储到redis中。
第一种配置方法:(不使用Django中session默认的存储方式,直接将session存储的地方配置到redis中)
# 1.在虚拟环境中安装包 pip install django-redis-sessions==0.5.6 # 2.在Django项目的settings文件中增加下面的配置 SESSION_ENGINE = 'redis_sessions.session' SESSION_REDIS_HOST = 'localhost' SESSION_REDIS_PORT = 6379 SESSION_REDIS_DB = 2 SESSION_REDIS_PASSWORD = '' SESSION_REDIS_PREFIX = 'session'
第二种配置方法:(先将Django中的缓存设置为redis,然后将session的存储地方设置为Django的缓存中)
#1.先在虚拟环境中安装包 pip install django_redis #2. 设置redis作为django的缓存设置 CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", # 把这里缓存你的redis服务器ip和port "LOCATION": "redis://172.16.179.142:6379/12", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", } } } # 3.设置redis存储django的session信息 SESSION_ENGINE = "django.contrib.sessions.backends.cache" SESSION_CACHE_ALIAS = "default"
本文来自博客园,作者:王竹笙,转载请注明原文链接:https://www.cnblogs.com/edeny/p/9888682.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?