认识redis
1、redis是内存 no-sql 数据库,相比mysql等硬盘数据库效率高2、在内存值配置数据库使用,而不直接使用内存,redis存储的数据是可以管理的3、memcache也是内存数据库,且django默认采用的就是memcache数据库,用redis替换memcache的路由很简单,后者更强大
redis支持更多的数据类型
redis自带缓存机制,出现数据库系统崩溃数据也是可以有找回的功能
redis可以主动完成数据持久化(自带数据持久化功能)
redis的数据过期时间机制也可以自身完成
安装操作
1.安装redis与可视化操作工具
注:在官网安装系统版本,下载对应安装包安装即可(傻瓜式安装)2.在服务中管理redis服务器的开启关闭3.命令行简单使用redis:-- redis-cli #启动客户端
-- set key value #设置值
-- get key #取出值
4.redis支持:字符串、字典、列表、集合、有序集合
https://www.runoob.com/redis/redis-tutorial.html5.特点:可持久化、单线程单进程并发
基础命令
启动服务:>: redis-server 只对当前控制面板有效
redis-server &永久开启
启动客户端连接redis>: redis-cli -h localhost -p 6379 -n 数据库编号(0~15)
连接成功后切换数据库>: select 数据库编号
用cmd起redis
redis数据类型
支持的数据类型:String(字符串)、Hash(散列)、List(列表)、Set(集合)、Sorted Set(有序集合)
String:存储其他类型不能存的所有数据(包括视频,音频)
Hash:存储 key-value 形式的数据,类似于字典
List:存储 一系列有序value 形式的数据,列表(数组)
Set:存储 一系列无序value 形式的数据,集合
Sorted Set:存储 有排列标号的value 形式的数据,作排行
字符串类型
set:key value
get:key
mset:k1 v1 k2 v2 ... kn vn
mget:k1 k2 ... kn
setex:key exp value
1.set / get 添加 / 获取 值
2. getrange 返回 key 中字符串值的子字符
3.mset/mget 同时 设置/取 一个或多个 key-value 对
4.incr/decr 增/减 1
哈希操作
常用方法:
单增:hset key field value
单查:hget key field
所有键值:hgetall key
单删:hdel key field
所有key:hkeys key
所有值:hvals key
列表操作
右增: rpush key v1 v2 ... vn
左增: lpush key v1 v2 ... vn
修改: lset key index value
左删: lpop key
右删: rpop key
插入:linsert key before|after old_value new_value
区间:lrange key begin_index end_index
集合操作
增:sadd key v1 v2 ... vn
差集:sdiff key1 key2
并集:sinter key1 key2
交集:sunion key1 key2
查:smembers key
随机删:spop key
有序集合
增:zadd key score1 value1 score2 value2 ... scoren valuen
区间个数:zcount key begin_score end_score
排行低到高:zrange key begin_index end_index
排行高到低:zrevrange key begin_index end_index
python使用redis
依赖
>: pip3 install redis
直接使用
importredis
r= redis.Redis(host='127.0.0.1', port=6379)
连接池使用
importredis
pool= redis.ConnectionPool(host='127.0.0.1', port=6379)
r= redis.Redis(connection_pool=pool)
缓存使用:要额外安装 django-redis
#1.将缓存存储位置配置到redis中:settings.py
CACHES ={"default": {"BACKEND": "django_redis.cache.RedisCache","LOCATION": "redis://127.0.0.1:6379","OPTIONS": {"CLIENT_CLASS": "django_redis.client.DefaultClient","CONNECTION_POOL_KWARGS": {"max_connections": 100}
}
}
}#2.操作cache模块直接操作缓存:views.py
from django.core.cache import cache #结合配置文件实现插拔式#存放token,可以直接设置过期时间
cache.set('token', 'header.payload.signature', 10)#取出token
token = cache.get('token')