Redis基础
Redis
简介
Redis是一个key - value存储系统,非关系型数据库(nosql数据库),缓存数据库,数据存在于内存中
Redis支持五大数据类型
- 字符串
- 列表
- hash(字典)
- 集合
- 有序集合
使用Redis的好处
- 速度快:缓存数据库
- 支持丰富数据类型(五大数据类型)
- 支持事务(通过管道支持)(单实例上有效)
- 丰富的特性:可用于缓存、消息队列、按key设置过期时间,过期后自动删除
Redis对比memcached
- 都是内存数据库
- Redis类型丰富(五大数据类型),memcached只支持字符串类型
- Redis支持持久化,memcached不支持持久化
- Redis速度比memcached块
Redis特点
- 可以持久化
- 单线程,单进程
- Redis最新版本是6.x
- 6.x版本之前是单线程,单进程
Redis单线程为什么这么快(官方:10w左右并发,实际:6w左右并发)
- 纯内存操作
- 使用了io多路复用模型(epoll、select)
- 因为是单线程,不存在线程间切换,节省资源
服务:客户端,服务端(跟MySQL一样,是存数据的地方)
安装
- Redis是使用C写的且开源,官方并不支持Windows平台
- 第三方基于Redis源码,修改编译成Windows平台可以运行的(老:维护到3.x,新:维护到5.x)
- https://github.com/microsoftarchive/redis(Windows平台(3.x))
- 图形化界面客户端(redis-desktop-manager)
- 监听默认端口:6379
启动Redis服务
- 在任意路径下敲(前提:已经添加环境变量):redis-server
- Windows平台已经做成服务,直接开启服务
客户端连接
- 任意路径下敲:redis-cli -h 127.0.0.1 -p 6379
- 使用客户端连接
- 使用python操作(pip install redis)
普通连接与连接池
普通连接
1 | # redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py |
连接池
1 | # redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销 |
把POOL以单例形式使用
1 | # pool.py |
Redis五大数据类型之字符串
字符串操作,Redis中的字符串再内存中按照一个name对应一个value来存储

1 | ''' |
Redis五大数据类型之hash

1 | ''' |
Redis五大数据类型之列表

1 | ''' |
其他通用操作
1 | ''' |
管道
1 |
|
Django使用Redis
1 | # 第一种:通用方式(任何web框架都可以) |