redis 下载安装 & python 操作redis & django 连接redis丨【生长吧!Python】

举报
ruochen 发表于 2021/06/28 09:06:50 2021/06/28
【摘要】 redis 下载安装 & python 操作redis & django 连接redis

1. redis 下载安装

1.1 下载

下载比较慢的话,我把 3.0.504 版本的安装包放在了网盘,需要可自行下载
链接:https://pan.baidu.com/s/1s8Do4PTpk4kTZCjMysy_7w
提取码:riqm

1.2 安装

  • 我电脑上已经安装过了,一路默认就可以了,中间可以换一下安装路径。

  • 安装好以后,我们可以给redis设置密码,在 redis 安装目录中 redis.windows-service.conf 文件中进行编辑
    在这里插入图片描述

  • 找到 # requirepass foobared 在下面添加一行,例如我的密码是 root
    在这里插入图片描述

  • 除添加密码外,还可以设置绑定IP,也就是说可以让局域网内的其他主机也可以访问自己,找到 bind 这一行,在下面添加一行 bind 0.0.0.0
    在这里插入图片描述

  • 修改完密码等配置后,将redis服务重新启动一下
    【控制面板】–> 【管理工具】–> 【服务】
    在这里插入图片描述找到redis服务,右键【重新启动】
    在这里插入图片描述

  • redis 安装完成后,就可以通过终端进行操作
    在这里插入图片描述

redis 默认端口号为: 6379
MySQL 默认端口号为:3306
MongoDB 默认端口号为: 27017
sqlserver 默认端口号为:1433

2. Python 操作redis

2.1 模块安装

pip install redis

2.2 详细代码

2.2.1 直接连接

# -*- coding: UTF-8 -*-
'''=================================================
@Project -> File   :MyDjango -> redis_test
@IDE    :PyCharm
@Author :ruochen
@Date   :2020/6/21 21:34
@Desc   :
=================================================='''
import redis

# 直接连接redis
conn = redis.Redis(host='192.168.1.4', port=6379, password='root', encoding='utf-8')

# 设置键值: 18203503747="6666" 且超时时间为10s(值写入到redis时会自动转字符串)
conn.set('18203503747', 'ruochen', ex=10)

# 根据键获取值: 如果存在获取值(获取到的是字节类型);不存在则返回 None
value = conn.get('18203503747')
print(value)
print(value.decode())
b'ruochen'
ruochen

2.2.2 通过连接池连接

# -*- coding: UTF-8 -*-
'''=================================================
@Project -> File   :MyDjango -> redis_test2
@IDE    :PyCharm
@Author :ruochen
@Date   :2020/7/1 17:48
@Desc   :
=================================================='''
import redis

# 创建redis 连接池(默认连接池最大连接数 2**31=2147483648)
pool = redis.ConnectionPool(host='192.168.1.4', port=6379, password='root', encoding='utf-8', max_connections=1000)

# 去连接池中获取一个连接
conn = redis.Redis(connection_pool=pool)

# 设置键值:name='ruochen' 且超时时间为10秒(值写入到redis时会自动转字符串)
conn.set('name', 'ruochen', ex=10)

# 根据键获取值:如果存在获取值(获取到的是字节类型);不存在则返回None
value = conn.get('name')

print(value)
b'ruochen'

3. django 连接redis

  • 可以在视图函数中进行如下操作

    import redis
    from django.shortcuts import HttpResponse
    # 创建redis连接池
    POOL = redis.ConnectionPool(host='192.168.1.6', port=6379, password='root', encoding='utf-8', max_connections=1000)
    def index(request):
    	# 去连接池中获取一个连接
    	conn = redis.Redis(connection_pool=POOL)
    	conn.set('name', "ruochen", ex=10)
    	value = conn.get('name')
    	print(value)
    	return HttpResponse("ok")
    
  • 不过一般不会使用上述操作,因为django 有专门的模块 django-redis 【依赖redis模块】

  • 模块安装

    pip install django-redis
    
  • 详细代码

    • settings.py 中添加配置
      CACHES = {
          "default": {
              "BACKEND": "django_redis.cache.RedisCache",
              "LOCATION": "redis://192.168.1.6:6379",
              "OPTIONS": {
                  "CLIENT_CLASS": "django_redis.client.DefaultClient",
                  "CONNECTION_POOL_KWARGS": {
                      "max_connections": 1000,
                      "encoding": 'utf-8'
                  },
                  "PASSWORD": "root"
              }
          }
      }
      
  • django 视图中操作 redis

    from django.shortcuts import HttpResponse
    from django_redis import get_redis_connection
    def index(request):
    # 去连接池中获取一个连接
    	conn = get_redis_connection("default")
    	conn.set('nickname', "ruochen", ex=10)
    	value = conn.get('nickname')
    	print(value)
    	return HttpResponse("OK")
    

【生长吧!Python】有奖征文火热进行中:https://bbs.huaweicloud.com/blogs/278897

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。