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 相关文章推荐
django 自定义用户user模型的三种方法
Nov 18 Python
Python三元运算实现方法
Jan 12 Python
python装饰器实例大详解
Oct 25 Python
Python实现去除列表中重复元素的方法小结【4种方法】
Apr 27 Python
django 删除数据库表后重新同步的方法
May 27 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
Jan 23 Python
Python人脸识别第三方库face_recognition接口说明文档
May 03 Python
django框架防止XSS注入的方法分析
Jun 21 Python
Python性能分析工具Profile使用实例
Nov 19 Python
关于python的缩进规则的知识点详解
Jun 22 Python
python mongo 向数据中的数组类型新增数据操作
Dec 05 Python
Python数据可视化之基于pyecharts实现的地理图表的绘制
Jun 10 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
推荐几部必看的DC动画电影
2020/03/03 欧美动漫
thinkPHP自动验证机制详解
2016/12/05 PHP
PHP获取数组中单列值的方法
2017/06/10 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
php实现微信企业付款到个人零钱功能
2018/10/09 PHP
javascript+mapbar实现地图定位
2010/04/09 Javascript
jQuery统计上传文件大小的方法
2015/01/24 Javascript
javascript实现百度地图鼠标滑动事件显示、隐藏
2015/04/02 Javascript
php常见的页面跳转方法汇总
2015/04/15 Javascript
在JavaScript中处理时间之setMinutes()方法的使用
2015/06/11 Javascript
Javascript基础_标记文字的实现方法
2016/06/14 Javascript
jQuery基于BootStrap样式实现无限极地区联动
2016/08/26 Javascript
js通过keyCode值判断单击键盘上某个键,然后触发指定的事件方法
2017/02/19 Javascript
Angularjs渲染的 using 指令的星级评分系统示例
2017/11/09 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
JS数组求和的常用方法总结【5种方法】
2019/01/14 Javascript
史上最为详细的javascript继承(推荐)
2019/05/18 Javascript
vue-i18n结合Element-ui的配置方法
2019/05/20 Javascript
[03:10]2014DOTA2 TI马来劲旅Titan首战告捷目标只是8强
2014/07/10 DOTA
多版本Python共存的配置方法
2017/05/22 Python
Python 高级专用类方法的实例详解
2017/09/11 Python
解决python中 f.write写入中文出错的问题
2018/10/31 Python
python训练数据时打乱训练数据与标签的两种方法小结
2018/11/08 Python
Python二叉树的镜像转换实现方法示例
2019/03/06 Python
Django中celery执行任务结果的保存方法
2019/07/12 Python
Pytorch Tensor的索引与切片例子
2019/08/18 Python
详解Python修复遥感影像条带的两种方式
2020/02/23 Python
Matplotlib使用Cursor实现UI定位的示例代码
2020/03/12 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
2020/04/30 Python
CSS3 画基本图形,圆形、椭圆形、三角形等
2016/09/20 HTML / CSS
保密普查工作实施方案
2014/02/25 职场文书
五年级小学生评语
2014/12/26 职场文书
横店影视城导游词
2015/02/06 职场文书
2015年初中生自我评价范文
2015/03/03 职场文书
python Polars库的使用简介
2021/04/21 Python
详解Flutter和Dart取消Future的三种方法
2022/04/07 Java/Android