Django中redis的使用方法详解

  • 时间:
  • 9432人关注

下面小编就为大家分享一篇Django中redis的使用方法(包括安装、配置、启动),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧,另外这篇文章主要知识点是关于redis、安装配置、Django、Django的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子资料:

教程详情电子资料
  • 教程类别:Django
  • 编辑整理:江平晓
  • 教程字数:4168字节
  • 阅读时间:大概9分钟
  • 下载本教程(DOC版)
  • Django实战:Python Web典型模块与项目开发
  • Redisson使用手册
  • Django v3.1 官方文档
  • Django Rest Framework 教程
  • Redis开发与运维
  • 一、安装redis:

    1.下载:

    wget http://download.redis.io/releases/redis-3.2.8.tar.gz

    2.解压

    tar -zxvf redis-3.2.8.tar.gz

    3.复制,放到/usr/local目录下

    sudo mv ./redis-3.2.8 /usr/local/redis

    4.进入到redis目录下

    cd /usr/local/redis/

    5.生成

    sudo make

    6.测试,时间会比较长

    sudo make test

    7.安装,将redis的命令安装到usr/local/bin/目录中

    sudo make install

    8.安装成功后,进入usr/local/bin/目录中查看:

    cd /usr/local/bin

    Django中redis的使用方法(包括安装、配置、启动)

    9.将配置文件复制放到/etc/redis目录下:

    sudo cp /usr/local/redis/redis.conf /etc/redis/redis.conf

    可能刚开始etc下没有redis目录,需要自己手动创建一个redis文件夹。

    以上在第6步的时候可能会遇到这样的问题:

    You need tcl 8.5 or newer in order to run the Redis testmake: *** [test] Error 1

    解决办法:安装tcl

    wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz 
    sudo tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/ 
    cd /usr/local/tcl8.6.1/unix/ 
    sudo ./configure 
    sudo make 
    sudo make install

    二、 配置redis:

    配置信息在/etc/redis/redis.conf下,打开sudo vi /etc/redis/redis.conf。

    核心配置选项:

    绑定ip:bind 127.0.0.1

    端口号:port 6379

    是否以守护进程运行:daemonize yes  必须改为yes

    数据库文件:dbfilename dump.db  

    数据库文件存储路径:dir /var/lib/redis  可改可不改,改的话提前创建好文件夹

    日志文件:logfile /var/log/redis/redis-server.log  必须要改,提前创建好文件夹

    数据库,默认有16个:database 16

    主从复制:slaveof

    配置小结:主要更改两块:1,守护进程;2.日志文件路径

    三、启动redis:

    1.根据配置文件启动redis服务器

    sudo redis-server /etc/redis/redis.conf 

    2.启动redis客户端:

    redis-cli

    3.输入ping命令测试:

    127.0.0.1:6379> pingPONG

    4.关闭redis服务器:

    ps aux|grep redis # 查看redis进程号kill -9 pid redis进程号 # 关闭redis服务器

    5.切换数据库:默认有16个,通过0-15来标识,默认是第一个数据库0号数据库。

    select n

    四、redis的数据操作:

    1.redis的存储格式为key-value格式。key是字符串类型,value的类型有5种:string、hash、list、set、zset。

    2.redis中关于键的常见的操作:

       2.1查看左右的键:keys *

       2.2查看某个键是否存在,存在返回1不存在返回0:exists key1

       2.3查看键的值对应的数据类型:type key1

       2.4删除键值对:del key1 key2

       2.5设置键的过期时间,如果没有指定默认一直存在:expire key seconds

       2.6查看键的有效时间:ttl key1

       2.7清空数据库:flushall

    3.string类型的基本操作:

    3.1保存

    set key value  保存单个键值对 mset key1 value1 key2 value2  保存多个键值对 setex key seconds value  设置键值和过期时间 append key value追加值

    3.2获取

    get key  获取单个 mget key1 key2  获取多个

    3.3删除

    del key

    4 hash类型的基本操作:

    4.1保存

    hset key field value #设置单个属性
    
    hmset key field1 value1 field2 value2 ... #设置多个属性
    

     

    4.2获取

    hkeys key # 获取指定键的所有属性
    hget key field # 获取单个属性的值
    hmget key field1 field2 ... # 获取多个属性的值
    hvals key # 获取所有属性的值

    4.3删除

    del key # 删除整个hash的键和值
    hdel key field1 field2 ... # 删除属性和属性对应的值

    4.4关于hash类型的个人理解:

    可以将hash类型理解为用来存储对象:

    Django中redis的使用方法(包括安装、配置、启动)

    5 list类型的基本操作:

    5.1保存

    lpush key value1 value2 ... #从左侧依次插入数据
    rpush key value1 value2 ... #从右侧依次插入数据
    linsert key before或after 现有元素 新元素 #从指定元素的前或后插入新元素

    5.2获取

    lrange key start stop 

    start、stop为元素的下标索引,从左侧开始,第一个元素为0,-1标识最后一个元素。获取所有的元素:lrange key 0 -1

    5.3删除指定元素

    lrem key count value

    将列表中前count次出现的值为value的元素移除。

    count > 0: 从头到尾移除

    count < 0: 从尾到头移除

    count = 0: 移除所有

    6.set类型的基本操作

    特点:无序集合、元素唯一性不重复、没有修改操作

    6.1增加元素

    sadd key member1 member2 ...

    6.2获取元素

    smembers key # 返回所有元素

    6.3删除指定元素

    srem key member1 member2 ...

    7.zset类型的数据操作

    特点:有序集合、元素唯一性不重复、没有修改操作、每个元素都会关联一个double类型的权重,根据权重从小到大排列

    7.1增加

    zadd key score1 member1 score2 member2 ...

    7.2获取

    zrange key start stop  # 根据索引获取
    
    zrangebyscore key min max  # 获取权重在min和max之间的数据
    zscore key member  # 返回成员member的score值

    7.3删除

    zrem key member1 member2 ... # 删除指定元素
    zremrangebyscore key min max #删除权重在指定范围的元素

    五、redis与python进行交互:

    1.在虚拟环境中安装redis包:

    pip 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"

    以上这篇Django中redis的使用方法(包括安装、配置、启动)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。


    上一篇:深入理解Python3.6连接Oracle数据库

    下一篇:python使用OpenCV实现人脸识别

    相关内容

    • Pycharm安装及Django安装配置指南

      这篇文章主要介绍了Pycharm安装及Django安装配置指南,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

      04-11Pycharm安装Django安装配置

      阅读更多
    • Django框架安装及项目创建过程

      这篇文章主要介绍了Django框架安装及项目创建过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

      04-12Django框架安装

      阅读更多
    • java连接redis必须用密码吗

      也不是必须用,得看你自己的配置的,在redis的redis.conf文件中有一个标签叫requirepass,如果把注释打开,则需要密码,如果不打开,则不用密码,但是一般为了安全,建议你带上密码

      12-10

      阅读更多
    • java连接redis必须用密码吗

      也不是必须用,得看你自己的配置的,在redis的redis.conf文件中有一个标签叫requirepass,如果把注释打开,则需要密码,如果不打开,则不用密码,但是一般为了安全,建议你带上密码

      12-09java连接redis需要用密码吗

      阅读更多
    • Springboot+redis+Interceptor+自定义annotation实现接口自动幂等

      本篇文章给大家介绍了使用springboot和拦截器、redis来优雅的实现接口幂等,对于幂等在实际的开发过程中是十分重要的,因为一个接口可能会被无数的客户端调用,如何保证其不影响后台的业务

      04-26接口自动幂实现方法

      阅读更多
    • Django开发宝典

      Django开发宝典

      本书是对Python Django开发全过程解析,使读者能够掌握项目的开发流程。由浅入深地带领读者进行Django的开发,最终使读者掌握项目的开发流程,从而运用于自己的项目开发中

      大小:85.5 MBDjango

      点击下载
    • Django企业开发实战:高效Python Web框架指南

      Django企业开发实战:高效Python Web框架指南

      这书以从零开始开发设计1个博客系统为例,详细介绍Django在平时工作上的运用。这书共分成四一部分。*一部分详细介绍编号以前的提前准备工作中,包含需求分析报告、Web开发设计基本及其电

      大小:161.7 MBDjango

      点击下载
    • Python高效开发实战:Django、Tornado、Flask、Twisted

      Python高效开发实战:Django、Tornado、Flask、Twisted

      也许你听说过全栈工程师,他们善于设计系统架构,精通数据库建模、通用网络协议、后端并发处理、前端界面设计,在学术研究或工程项目上能独当一面。通过对Python及其周边Web框架的学习

      大小:107.6 MBPython

      点击下载
    • Python新手使用Django架站的16堂课

      Python新手使用Django架站的16堂课

      本书作者台湾大师带你活用Django Web Framework快速构建移动网站,以16堂课来介绍Python新手使用Django架站的要点,可作为Python Django的初学者的参考书籍

      大小:199.5 MBPython

      点击下载
    • 精通Django

      精通Django

      本书的主要目的是把你打造成 Django 专家。本书集中讲解两方面的内容。首先,深入说明 Django 的机制,教你使用它构建 Web 应用。其次,适当讨论高级概念,说明如何在项目中有效使用相关的

      大小:7.5 MBDjango

      点击下载
    • 玩转Django 2.0

      玩转Django 2.0

      这书全部编程代码均在Python3.6Django2.0自然环境下产品测试,出示案例源代码下载。这书是1本PythonWeb的技术总结,关键以Python3和Django2.0版本号保持。根据这书的学习培训,用户可以深入把握Dj

      大小:64.9 MBDjango

      点击下载
    • Python Django Web典型模块开发实战

      Python Django Web典型模块开发实战

      腾讯云服务社区/阿里巴巴云栖社区栏目创作者Django全栈开发心得分享 详细说明DjangoWeb开发设计中11个常见典型性控制模块的开发设计全过程 协助你变成一位Django全栈开发的高手级程序猿 项目

      大小:19.6 MBPython开发

      点击下载

    学习笔记

    2小时38分钟前回答

    Django中修改js css文件但浏览器无法及时与之改变的解决方法

    今天修改之前实习小伙伴写的js代码的时候,遇到修改后页面未发生变化的问题。因为我是web开发小白,所以上网查了一波,得以解决~~ 初次进行web工程开发的人可能会碰到这样的情况:自己在明明对工程上的某个js或css文件进行了修改,并提交到服务器上去了。但是在客户端浏览器里面打开页面时,并没有看到修改后的效果,而是该js文件的旧版本的效果。 如果了解过浏览器缓存就知道,为了效率,浏览器通常会缓存js/css文件。如果没有清除浏览器缓存的该js文件的话,js的修改效果就不会起作用,因为浏览器还是用的缓存在本地的js文件。 这里我用的是Google Chrome浏览器,具体操作如下: ① 打开Chr……

    25小时32分钟前回答

    django信号调度机制知识点总结

    前言 Django中提供了信号调度,用于在框架执行操作时解耦。通俗来讲,就是一些动作发生的时候,信号允许特定的发送者去提醒一些接受者。 1、Django内置信号 Model signals pre_init # django的modal执行其构造方法前,自动触发 post_init # django的modal执行其构造方法后,自动触发 pre_save # django的modal对象保存前,自动触发 post_save # django的modal对象保存后,自动触发 pre_delete # django的modal对象删除前,自动触发 post_delete # django的modal对象删除后,自动触发 m2m_changed # django的modal中使用m2m字段操作第三张表(add,remove,clear)前后,自动触发 class_prepared # 程序启动时,检测已注册的app中modal类,对于每一个类,自动触发Man……

    22小时22分钟前回答

    django实现微信网页授权登陆实例代码

    一、准备工作 0x00 开发前准备 服务号!!! 微信认证。 备案过的域名。 服务器。 0x01 手动触发dns更新 0x02 配置业务域名 0x03 将服务器请求转发到本地 修改服务器的 /etc/ssh/sshd_config 加入 GatewayPorts yes ssh -R 0.0.0.0:80:localhost:8080 user@server_host 二、微信网页授权 0x01 授权流程 用户同意授权,获取 code 想办法让用户页面跳转到微信的授权链接(比如在修饰器中进行跳转): def get_wx_authorize_url(appid : str, state: str = None): if state is None: state = .join([random.choice(string.ascii_letters + string.digits) for _ in range(20)]) redirect_url = your callback url # 回调链接,在这里面进行用户信息入库的操作 response_type = code scope = snsapi_userinfo wx_url =……

    1小时1分钟前回答

    django富文本编辑器的实现方法

    最近一段时间都在学django,现在的网站基本都要使用到富文本编辑器,今天就记录下使用django的管理后台的一个富文本编辑器的第三方库 DjangoUeditor 使用方法 1.安装 方法一:将github整个源码包下载回家,在命令行运行: python setup.py install 方法二:使用pip工具在命令行运行(推荐): pip install DjangoUeditor 2.在 settings.py的INSTALL_APPS里面增加DjangoUeditor app INSTALLED_APPS = [ ... DjangoUeditor] 3.配置urls 在urls.py 里添加路由 # 富文本path(ueditor/, include(DjangoUeditor.urls)), 4.在 modal 使用 # 引入 UEditorFieldfrom DjangoUeditor.models import UEditorField# 使用class Demo(model.Model): detail = UEditorField(verbose_name=u详情, width=600, height=300, imagePath=courses/uedito……