Auth: 王海飞
Data:2018-06-15
Email:779598160@qq.com
github:https://github.com/coco369/knowledge
Redis是REmote DIctionary Server的缩写,它是一个用ANSI C编写的高性能的key-value存储系统,与其他的key-value存储系统相比,Redis有以下一些特点(也是优点):
Redis的读写性能极高,并且有丰富的特性(发布/订阅、事务、通知等)。
Redis支持数据的持久化(RDB和AOF两种方式),可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
Redis不仅仅支持简单的key-value类型的数据,同时还提供hash、list、set,zset、hyperloglog、geo等数据类型。
Redis支持主从复制(实现读写分析)以及哨兵模式(监控master是否宕机并调整配置)。
redis在centos中的安装配置已经上章文章中已经整理好了,如需查看自行跳转过去查看,地址。Redis有着非常丰富的数据类型,也有很多的命令来操作这些数据,具体的内容可以查看Redis命令参考,在这个网站上,除了Redis的命令参考,还有Redis的详细文档,其中包括了通知、事务、主从复制、持久化、哨兵、集群等内容。
可以使用pip安装redis模块。redis模块的核心是名为Redis的类,该类的对象代表一个Redis客户端,通过该客户端可以向Redis服务器发送命令并获取执行的结果。我们在Redis客户端中使用的命令基本上就是Redis对象可以接收的消息。
首先:安装redis
pip3 install redis
该案例:用户在登录的时候,先验证传入的用户名和密码是否在redis中,是否能验证通过,如果不能验证通过的话,就去mysql数据库中验证,如果验证成功则同步redis中用户的信息。
# -*- coding:utf-8 -*-
import sys
import pymysql
import redis
# 访问mysql数据库
def con_mysql(sql):
db = pymysql.connect(
host='127.0.0.1',
user='root',
passwd='123456',
port=3306,
db='srs',
charset='utf8')
cursor = db.cursor()
cursor.execute(sql)
data = cursor.fetchall()
db.close()
return data
def con_redis()
r = redis.Redis(host='47.92.164.198', port=6379)
return r
def excute_redis(r, passwd, name):
r_name = r.hget('user','name')
r_passwd = r.hget('user', 'passwd')
r_name = r_name.decode('utf8')
r_passwd = r_passwd.decode('utf8')
if name == r_name and passwd == r_passwd:
return True, '登录成功'
else:
return False, '登录失败'
if __name__ == '__main__':
# 获取传入的姓名和密码参数
if len(sys.argv):
name = sys.argv[1]
passwd = sys.argv[2]
# 传入redis中,进行校验
r = con_redis()
result = excute_redis(r, passwd, name)
if not result[0]:
# 查询mysql数据库
sql = '''select * from stu where name="%s" and passwd="%s"''' % (name, passwd)
print(sql)
data = con_mysql(sql)
if data:
r = con_redis()
# r = redis.Redis(host='47.92.164.198', port=6379)
r.hset('user', 'name', name)
r.hset('user', 'passwd', passwd)
print('刷新redis,登录成功')
else:
print('用户名和密码错误')
else:
print('redis中数据正确,登录成功')
MongoDB是2009年问世的一个面向文档的数据库管理系统,由C++语言编写,旨在为Web应用提供可扩展的高性能数据存储解决方案。虽然在划分类别的时候后,MongoDB被认为是NoSQL的产品,但是它更像一个介于关系数据库和非关系数据库之间的产品,在非关系数据库中它功能最丰富,最像关系数据库。
MongoDB将数据存储为一个文档,一个文档由一系列的“键值对”组成,其文档类似于JSON对象,但是MongoDB对JSON进行了二进制处理(能够更快的定位key和value),因此其文档的存储格式称为BSON。关于JSON和BSON的差别大家可以看看MongoDB官方网站的文章《JSON and BSON》。
目前,MongoDB已经提供了对Windows、MacOS、Linux、Solaris等多个平台的支持,而且也提供了多种开发语言的驱动程序,Python当然是其中之一。
mongodb的安装配置以及语法操作都整理好了,可以自行前往回顾,熟悉语法。
通过pip安装pymongo来实现对MongoDB的操作。
pip install pymongo
简单的访问mongo,并打印文档中的信息
from pymongo import MongoClient
client = MongoClient('mongodb://45.76.206.145:27017')
db = client.spider
for student in db.students.find():
print(student)