数据库实例:mysql与redis结合用户登录
来源:互联网 发布:vr医疗软件 编辑:程序博客网 时间:2024/06/11 22:33
加入redis后登录逻辑如下图,将图中nosql的位置换为redis即可
- 用户数据存的键为用户名,值为密码
- 将原来MySQL操作的代码封装到一个方法中,代码如下
defmysql_login():
#redis中没有则到mysql中查询
sql='select upwd from py_users whereuname=%s'
params=[uname]
try:
conn= connect(host='localhost',port=3306,database='python',user='root',password='mysql',charset='utf8')
cur=conn.cursor()
cur.execute(sql,params)
result=cur.fetchone()
cur.close()
if result==None:
print'用户名错误,登录失败,数据来源于mysql'
else:
#当查询到用户及对应的密码时,将数据加入到redis中,以供后续登录使用
r.set(uname,upwd_sha1)
#判断密码是否正确
if result[0]==upwd_sha1:
print'登录成功,数据来源于mysql'
else:
print'密码错误,登录失败,数据来源于mysql'
except Exception,e:
print'登录失败,错误原因:%s' % e
finally:
conn.close()
- 创建user_redis.py文件,代码如下
#coding=utf-8
from MySQLdb import*
from hashlib importsha1
from redis import*
if __name__=='__main__':
try:
#接收输入用户名、密码
uname=raw_input('请输入用户名:')
upwd=raw_input('请输入密码:')
#对密码加密
s1=sha1()
s1.update(upwd)
upwd_sha1=s1.hexdigest()
#根据用户名查询密码
#先到redis上查,没有再到mysql上查
r=StrictRedis()
result=r.get(uname)
if result==None:
mysql_login()
else:
#redis中找到了这个用户名的数据
if result==upwd_sha1:
print'登录成功,数据来源于redis'
else:
print'密码错误,登录失败,数据来源于redis'
exceptException,e:
print'登录失败,错误原因:%s'%e
- 数据库实例:mysql与redis结合用户登录
- 数据库实例:mysql与mongo结合用户登录
- Redis缓存Mysql模拟用户登录Java实现实例
- Redis缓存Mysql模拟用户登录Java实现实例
- Redis与Mysql结合
- Redis与MySql结合
- redis与MySQL结合
- 数据库实例:用户登录
- CDI系列学习--用户注册用户登录与数据库的结合使用
- MySQL创建用户、数据库、远程登录用户
- mysql基础:mysql与C结合实例
- mysql基础:mysql与C结合实例
- mysql与redis结合使用笔记(一)
- Servlet+Jsp+MySql用户登录实例
- Servlet+Jsp+MySql用户登录实例
- vsftpd服务器结合mysql实现虚拟用户登录
- MySQL数据库开启root用户远程登录
- mysql数据库登录及用户管理
- UVA 156 【map的使用】【字符串模拟】
- 安装开发环境和开发软件和学习html5
- PB对Unicode的支持
- 简述YAML语言
- BZOJ 1047: [HAOI2007]理想的正方形(单调队列)
- 数据库实例:mysql与redis结合用户登录
- 倒计时
- 计算机英语词汇大全
- argc & argv in C
- 编程中良好的代码格式-如何写出一手漂亮的代码
- Python | 字符串判断及内置函数
- 最长公共上升子序列
- 深入分析 Java 中的中文编码问题
- js的垃圾回收机制