本篇文章主要介绍Redis的基本知识 五种数据结构(增删改查命令)+Python如何连接Redis
PythonWeb框架
Web应用程序处理流程:
前端客服端(浏览器、App、ajax、爬虫程序)发送HTTP请求向服务器发送请求 后台服务器
(Flask、Djiango) 由中间层处理 具体视图处理(数据库、模板、表单) 中间层处理
HTTP响应对象通过服务器向前端克服端发送HTTP响应。
首先学习一个新的玩意:
Redis是一个高性能的key-value数据库
为什么选择redis来存储加载Web、网页中所需要的数据:例如验证码(时间过了,自动销毁)
redis是一种高性能的数据库 存储格式采用:键值对。
nosql:不仅仅只有sql 与传统的mysql关系型数据库不同。
一句话:Radis反正很牛逼
Redis的性能高、读写快速、原子性、丰富支持。
bind 本地ip127.0.0.1
port 6379
服务器指令:
切换Redis数据库 select (0~15) 默认16个数据库!!!
redis -cli 客服端连接服务器
select 0
select 10 切换服务器 默认有16个服务器
数据结构:
redis是key-value的数据结构,每条数据都是一个键值对
键的类型是字符串(不可变数据类型)
注意:键不能重复
Redis(非关系数据库nosql)中的五种数据类型:
- 字符串
- 列表
- 哈希(字典)
- 集合(默认无序)
- 有序集合
先来看看常见的命令(针对五种数据类型的{增删改查}方法):(redis默认16个数据库 0~15 )
字符串(String):
增:set key value
删:del key[keys...]
改:set key value(新的value)
查:get key (返回对应的value)
注意:可以设置定时的字符串 应用网页中验证码(过期会自动刷新)
mset key1 value1 key2 value2 ... mget key1 key2... 一次增删多个字符串。
命令:(设置)setex value seconds value(查询)ttl key 查看过期时间 区别:永久的字符串是-1
补充:常见的键命令
查看所有的键(keys *)
查看含有a的键(key a*)
判断键是否存在:存在返回1 不存在返回0
设置键的过期时间:exprire key seconds
查看有效时间:ttl key
哈希表(hash): 用于存储对象 对象的结构为属性、值类型为string 下面的参数低于键(后面跟两个属性) 一个键后面可以跟多个属性 hset 键(参数) (属性、属性)(属性、属性)...
增:hset 参数 key value
删:hdel 参数 (key)。。。
改:hset 参数 新的值和键
查:hget 参数 查看属性
查看所有键:hkeys 参数
查看所有值:hvals 参数
一个参数下可以对应多个属性(键值对)
hmget key /hmset 多次增查
列表(list):
分为lpush 和 rpush 类似于 Python中的双向队列 (apppendleft/popleft--pop/append)
增:lpush key value
删:lrem key 从左边开始删 /rrem key从右边开始删
改:重新写增加语句 lpush key value
查:lrange key 下标(类似于切片 0:-1)
集合(set默认是无序集合) : 集合两大特性:去重+无序
增:sadd key value
删:srem key
改:直接srem删除后+重新添加
查:smembers key
有序集合(sorted set):元素为string类型 每个类型关联一个double类型的score权重 按权重排序
增:zadd key score1 member1 score2 member2... 集合中的成员对应字符串/列表 (购物车使用redis来存储) score为时间戳 (现在到1970年1月1日00:00:00)累计的秒数。
删:zrem key......
改:删除+重新增加
查:zrange key 0 -1 类似于(列表)从小到大排序
可以看到这五种的增删改查的命令并不难写,孰能生巧。
Redis的优势:
性能极高。读写速度快;
丰富的数据类型:String List Hash sorted set set
原子:Redis的所有操作的欧式不可再分的。
丰富的特性:redis支持publish/subscribe 通知、过期(setex key 秒数 value)等特性。
Redis应用场景:
用来做缓存 redis存储在内存中;
可以在某些特定场景下替代传统的数据库-例如社交应用
有一些大型的系统中,巧妙地实现了一些特定的功能:session共享、购物车
只要想象力足够丰富、Redis就会给我们带来奇思妙想。
Python连接Redis:
利用强大的第三方库,模拟客服端连接Redis的服务器。
- 导入模块
- 递交信息(host/port/db)
- 写适合redis的sql语句
对比一下:Python连接mysql
创建连接conn() 递交数据(host/db/password/port/charset/user)六个属性
再利用连接创建一个游标对象 写sql 语句 利用创建的游标对象查询结果
增删改操作需要使用异常处理:try(游标对象执行sql语句、连接递交) except(数据回滚、关闭连接)谨防数据丢失!!!
Redis和Mysql的区别:
递交的信息不一样:
Redis:host port db
Mysql:host user password port db charset='utf8'
语句的执行方式不一样:
Redis执行sql语句:直接利用连接.对应的函数名控制
Mysql执行sql语句:根据连接创建游标对象,sql语句由游标对象一手执行。
(知识之间是相通的、比较学习能让我们学的更好!!!)
以上就是PythonWeb开发框架(Djiango)的基础部分,谢谢大家的阅读!!!