在Django中使用redis:包括安装、配置、启动。
一、安装redis:
1.下载:
wget http://download.redis.io/releases/redis-3.2.8.tar.gz
2.解压
tar -zxvf redis-3.2..tar.gz
3.复制,放到/usr/local目录下
sudo mv ./redis-3.2. /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
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 test
make: *** [test] Error
解决办法:安装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:> ping
PONG
4.关闭redis服务器:
ps aux|grep redis # 查看redis进程号
kill - 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类型理解为用来存储对象:
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=, db=) # 默认就是这样的值,不写也行。
4.用sr这个对象操作redis,将redis中的命令当作函数让sr调用就ok。
六、Django框架中session存储到redis中的配置
默认情况下session是存储在数据库中的,但是当用session保存用户的状态时,用户频繁的访问服务器,会增大数据库的压力,也会降低用户访问的速度。为了解决这个问题将session存储到redis中。
第一种配置方法:(不使用Django中session默认的存储方式,直接将session存储的地方配置到redis中)
# .在虚拟环境中安装包
pip install django-redis-sessions==0.5. # .在Django项目的settings文件中增加下面的配置
SESSION_ENGINE = 'redis_sessions.session'
SESSION_REDIS_HOST = 'localhost'
SESSION_REDIS_PORT =
SESSION_REDIS_DB =
SESSION_REDIS_PASSWORD = ''
SESSION_REDIS_PREFIX = 'session'
第二种配置方法:(先将Django中的缓存设置为redis,然后将session的存储地方设置为Django的缓存中)
#.先在虚拟环境中安装包
pip install django_redis #. 设置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",
}
}
} # .设置redis存储django的session信息
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "default"
在Django中使用redis:包括安装、配置、启动。的更多相关文章
- 用Python来操作redis 以及在Django中使用redis
什么是Redis? Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server). Redis的键值可以包 ...
- 浅谈Redis及其安装配置
一.Redis的介绍 二.Redis的安装配置 三.Redis的配置文件说明 四.Redis的简单操作 简介: Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型. ...
- python连接redis、redis字符串操作、hash操作、列表操作、其他通用操作、管道、django中使用redis
今日内容概要 python连接redis redis字符串操作 redis之hash操作 redis之列表操作 redis其他 通用操作,管道 django中使用redis 内容详细 1.python ...
- redis的安装配置
主要讲下redis的安装配置,以及以服务的方式启动redis 1.下载最新版本的redis-3.0.7 到http://redis.io/download中下载最新版的redis-3.0.7 下载后 ...
- Django day35 redis连接池,redis-list操作,django中使用redis,支付宝支付
一:redis连接池, 二:redis-list操作, 三:django中使用redis, 四:支付宝支付
- docker安装redis,并用配置启动
1.拉取redis镜像 docker pull redis 2.创建redis本地配置文件 ①.去redis官网下载redis,获取redis.conf文件 ②.修改redis.conf文件相关配置, ...
- Ubuntu16.04中Mysql 5.7 安装配置
记录在Ubuntu 16.04安装Mysql 5.7时遇到的一些问题. Mysql安装 使用如下命令进行安装: 1 sudo apt-get install mysql-server mysql-cl ...
- Centos7:Redis的安装,配置及使用
安装依赖与环境 yum install gcc-c++ 解压缩redis 编译,进入redis源码目录 make 安装 make install PREFIX=/usr/local/redis 注:P ...
- redis的安装部署启动停止<17.3.21已更新>
--------------------------------------------------------- 启动redis时使用下面两条命令: redis-server /etc/redis. ...
随机推荐
- 【Codeforces 1036C】Classy Numbers
[链接] 我是链接,点我呀:) [题意] 让你求出只由3个非0数字组成的数字在[li,ri]这个区间里面有多少个. [题解] 只由3个非0数字组成的数字在1~10^18中只有60W个 dfs处理出来之 ...
- 4种OSS的应用架构及核心技术
基础型 架构描述:OSS作为文件存储源,用户上传下载数据均经过ECS与OSS通信. 解决用户问题:文件空间大,ECS磁盘存储空间有限:多ECS间无法同步数据. 适用场景描述:文件较多,但文件调 ...
- [Usaco2015 dec]Max Flow
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 204 Solved: 129[Submit][Status][Discuss] Descriptio ...
- codeforces gym 100357 K (表达式 模拟)
题目大意 将一个含有+,-,^,()的表达式按照运算顺序转换成树状的形式. 解题分析 用递归的方式来处理表达式,首先直接去掉两边的括号(如果不止一对全部去光),然后找出不在括号内且优先级最低的符号.如 ...
- 5-46 新浪微博热门话题 (30分)——unfinished HASH
5-46 新浪微博热门话题 (30分) 新浪微博可以在发言中嵌入“话题”,即将发言中的话题文字写在一对“#”之间,就可以生成话题链接,点击链接可以看到有多少人在跟自己讨论相同或者相似的话题.新浪微 ...
- 夜话JAVA设计模式之策略模式
策略模式 定义了算法簇,分别封装起来,让他们之间可以互相替换,让算法簇的变化独立于使用算法的客户.设计原则1 找出应用中可能需要变化之处,把他们独立出来,不要和那些不需要变化的代码混在 ...
- SystemTapでMySQL 5.5のDisk I/Oを分析する
http://d.hatena.ne.jp/sh2/20111121 2010年1月の記事SystemTapでMySQLのDisk I/Oを分析するの続きです.以前作成したSystemTapスクリプト ...
- word分节时,如何让每一节的首页置为奇数页
具体操作,可参考如下图片所示的步骤: 打印时的效果: 备注:目录页为第二小节首页(文档的第二页),整个文档的首页为封面第一页. 打印时,会在首页后自动插入一张空白页:也会在正文(第三页,第三节)前,目 ...
- postgresql 删除旧的版本9.5 并同时 升级到9.6
sudo apt-get purge postgresql-9.5 On Ubuntu 14.04 I have done this to get the latest postgres: sudo ...
- ZOJ 3888 Twelves Monkeys (预处理+优先队列)
题目链接:ZOJ 3888 Twelves Monkeys 题意:题目描写叙述起来比較绕,直接讲案例 9 3 3 9 1 6 1 4 1 6 7 2 输入n,m,q.n限制了你询问的年份,m台时光机, ...