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


Posted in Python onFebruary 21, 2018

一、安装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的使用方法(包括安装、配置、启动)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python性能优化技巧
Mar 09 Python
Python中多线程的创建及基本调用方法
Jul 08 Python
使用Python多线程爬虫爬取电影天堂资源
Sep 23 Python
python文件特定行插入和替换实例详解
Jul 12 Python
Django实现组合搜索的方法示例
Jan 23 Python
Python 利用切片从列表中取出一部分使用的方法
Feb 01 Python
pyqt5 实现在别的窗口弹出进度条
Jun 18 Python
一行python实现树形结构的方法
Aug 09 Python
Python 简单计算要求形状面积的实例
Jan 18 Python
python asyncio 协程库的使用
Jan 21 Python
如何用Python编写一个电子考勤系统
Feb 08 Python
用Python编写简单的gRPC服务的详细过程
Jul 04 Python
基于Django用户认证系统详解
Feb 21 #Python
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
Feb 21 #Python
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
Feb 21 #Python
python中abs&amp;map&amp;reduce简介
Feb 20 #Python
Python中常见的异常总结
Feb 20 #Python
Python中单例模式总结
Feb 20 #Python
ubuntu安装mysql pycharm sublime
Feb 20 #Python
You might like
第一个无线电台是由谁发明的
2021/03/01 无线电
输入值/表单提交参数过滤有效防止sql注入的方法
2013/12/25 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
2016/06/13 PHP
PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法
2016/07/01 PHP
Avengerls vs KG BO3 第三场2.18
2021/03/10 DOTA
JS函数验证总结(方便js客户端输入验证)
2010/10/29 Javascript
jQuery.extend()的实现方式详解及实例
2013/06/29 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记8)
2015/12/24 Javascript
关于Vue.js 2.0的Vuex 2.0 你需要更新的知识库
2016/11/30 Javascript
JS生成随机打乱数组的方法示例
2017/12/23 Javascript
angularjs使用div模拟textarea文本框的方法
2018/10/02 Javascript
在vue项目中优雅的使用SVG的方法实例详解
2018/12/03 Javascript
webpack 代码分离优化快速指北
2019/05/18 Javascript
Vue 实现前端权限控制的示例代码
2019/07/09 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
2020/02/05 Javascript
vue项目中微信登录的实现操作
2020/09/08 Javascript
[11:12]2018DOTA2国际邀请赛寻真——绿色长城OpTic
2018/08/10 DOTA
Python中的字符串替换操作示例
2016/06/27 Python
python selenium 对浏览器标签页进行关闭和切换的方法
2018/05/21 Python
python多线程并发让两个LED同时亮的方法
2019/02/18 Python
keras中的History对象用法
2020/06/19 Python
如何解决python多种版本冲突问题
2020/10/13 Python
html5教程画矩形代码分享
2013/12/04 HTML / CSS
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
国际化的太阳镜及太阳镜配件零售商:Sunglass Hut
2016/07/26 全球购物
英国玛莎百货新西兰:Marks & Spencer New Zealand
2019/07/21 全球购物
Geekbuying波兰:购买中国电子产品
2019/10/20 全球购物
Super-Pharm波兰:药房和香水在一个地方
2020/08/18 全球购物
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
2016/08/15 面试题
多媒体专业自我鉴定
2014/02/28 职场文书
车辆转让协议书
2014/04/15 职场文书
防火标语大全
2014/10/06 职场文书
2014年班干部工作总结
2014/11/25 职场文书
世界文化遗产导游词
2019/08/07 职场文书
利用Java连接Hadoop进行编程
2022/06/28 Java/Android
PostgreSQL之连接失败的问题及解决
2023/05/08 PostgreSQL