如何在Django中使用redis

这篇文章将为大家详细讲解有关如何在Django中使用redis,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

一、安装redis:

1.下载:

wgethttp://download.redis.io/releases/redis-3.2.8.tar.gz

2.解压

tar-zxvfredis-3.2.8.tar.gz

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

sudomv./redis-3.2.8/usr/local/redis

4.进入到redis目录下

cd/usr/local/redis/

5.生成

sudomake

6.测试,时间会比较长

sudomaketest

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

sudomakeinstall

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

cd/usr/local/bin

如何在Django中使用redis

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

sudocp/usr/local/redis/redis.conf/etc/redis/redis.conf

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

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

Youneedtcl8.5ornewerinordertoruntheRedistestmake:***[test]Error1

解决办法:安装tcl

wgethttp://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
sudotarxzvftcl8.6.1-src.tar.gz-C/usr/local/
cd/usr/local/tcl8.6.1/unix/
sudo./configure
sudomake
sudomakeinstall

二、 配置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服务器

sudoredis-server/etc/redis/redis.conf

2.启动redis客户端:

redis-cli

3.输入ping命令测试:

127.0.0.1:6379>pingPONG

4.关闭redis服务器:

psaux|grepredis#查看redis进程号kill-9pidredis进程号#关闭redis服务器

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

selectn

四、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保存

hsetkeyfieldvalue#设置单个属性

hmsetkeyfield1value1field2value2...#设置多个属性

4.2获取

hkeyskey#获取指定键的所有属性
hgetkeyfield#获取单个属性的值
hmgetkeyfield1field2...#获取多个属性的值
hvalskey#获取所有属性的值

4.3删除

delkey#删除整个hash的键和值
hdelkeyfield1field2...#删除属性和属性对应的值

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

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

如何在Django中使用redis

5 list类型的基本操作:

5.1保存

lpushkeyvalue1value2...#从左侧依次插入数据
rpushkeyvalue1value2...#从右侧依次插入数据
linsertkeybefore或after现有元素新元素#从指定元素的前或后插入新元素

5.2获取

lrangekeystartstop

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

5.3删除指定元素

lremkeycountvalue

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

count > 0: 从头到尾移除

count < 0: 从尾到头移除

count = 0: 移除所有

6.set类型的基本操作

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

6.1增加元素

saddkeymember1member2...

6.2获取元素

smemberskey#返回所有元素

6.3删除指定元素

sremkeymember1member2...

7.zset类型的数据操作

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

7.1增加

zaddkeyscore1member1score2member2...

7.2获取

zrangekeystartstop  #根据索引获取

zrangebyscorekeyminmax  #获取权重在min和max之间的数据
zscorekeymember  #返回成员member的score值

7.3删除

zremkeymember1member2...#删除指定元素
zremrangebyscorekeyminmax#删除权重在指定范围的元素

五、redis与python进行交互:

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

pipinstallredis

2.调用模块:

fromredisimportStrictRedis

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.在虚拟环境中安装包
pipinstalldjango-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.先在虚拟环境中安装包
pipinstalldjango_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就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

发布于 2021-03-02 23:48:53
收藏
分享
海报
0 条评论
176
上一篇:如何在Vue项目中使用Vux 下一篇:如何在Mac中安装vue
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码