redis数据库

为什么要学习redis
"""
1、redis是内存 no-sql 数据库,相比mysql等硬盘数据库效率高
2、在内存值配置数据库使用,而不直接使用内存,redis存储的数据是可以管理的
3、memcache也是内存数据库,且django默认采用的就是memcache数据库,用redis替换memcache的路由很简单,后者更强大
redis支持更多的数据类型
redis自带缓存机制,出现数据库系统崩溃数据也是可以有找回的功能
redis可以主动完成数据持久化(自带数据持久化功能)
redis的数据过期时间机制也可以自身完成
"""
redis安装
注:在官网安装系统版本,下载对应安装包安装即可
基础命令
启动服务:
>: redis-server & 启动客户端连接redis
>: redis-cli
>: redis-cli -h localhost -p 6379 -n 数据库编号(0~15) 连接成功后切换数据库
>: select 数据库编号
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
"""
哈希操作
"""
常用方法:
单增: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
直接使用
import redis
r = redis.Redis(host='127.0.0.1', port=6379)
连接池使用
import redis
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')

注意:

一定要在settings.py中配置CHAHES,将django的缓存换成redis

用原生的redis会出现数据类型错误的问题,存不进去

要通过cache来讲数据存入redis

简单说一下我自己对redis的应用:最简单的应用其实就是去存放一些我们经常需要查询的数据,因为这部分数据在你的数据库中属于查询频率较大的一些数据,我们通过将它存放在redis中来减少对数据库的查询频率从而降低数据库的压力,也能提高查询数据的效率。

最新文章

  1. sql 删除表中的重复记录
  2. Struts2 JSON
  3. Java重载遇到泛型
  4. java 21 - 13 IO流之 合并流
  5. MATLAB中的max函数的用法及含义
  6. 被windows“折磨”了一个礼拜
  7. mysql事件调度器
  8. 初学 Java Web 开发,从 Servlet 开发
  9. ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
  10. ajax得到后端数据一直提示为[object Object]解决方法
  11. Mac破解免费office软件
  12. 2017-2018-2 20155314《网络对抗技术》Exp1 PC平台逆向破解(5)M
  13. js常用内置对象
  14. GitLab目录迁移方法
  15. CSS动画简介
  16. C++虚函数virtual,纯虚函数pure virtual和Java抽象函数abstract,接口interface与抽象类abstract class的比较
  17. 对于开发WEB方面项目需要的工具和技术了解
  18. struts的namespace理解
  19. ECharts概念学习系列之ECharts官网教程之自定义构建 ECharts(图文详解)
  20. selenium + python自动化测试unittest框架学习(二)

热门文章

  1. ES6模块化深入 debug
  2. 每天一点点之vue框架开发 - vue组件之间传值(父向子传值)
  3. C语言-字符类型
  4. Ajax校验用户名是否可用
  5. SPOJ FISHER + FPOLICE SPFA+背包
  6. FFmpeg命令大全(更新中)
  7. Ubuntu使用小技巧汇总
  8. zTree & ckeditor &ValidateCode.jar 使用个人心得总结
  9. (转)mysql语句
  10. 201712-2 游戏 Java