日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

数据库实例:mysql与redis结合用户登录

發(fā)布時間:2024/7/5 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库实例:mysql与redis结合用户登录 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

加入redis后登錄邏輯如下圖,將圖中nosql的位置換為redis即可


?

  • 用戶數(shù)據(jù)存的鍵為用戶名,值為密碼
  • 將原來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 '用戶名錯誤,登錄失敗,數(shù)據(jù)來源于mysql'
???????
else:
???????????
#當(dāng)查詢到用戶及對應(yīng)的密碼時,將數(shù)據(jù)加入到redis中,以供后續(xù)登錄使用
???????????r.set(uname,upwd_sha1)
???????????
#判斷密碼是否正確
???????????
if result[0]==upwd_sha1:
???????????????
print '登錄成功,數(shù)據(jù)來源于mysql'
???????????
else:
???????????????
print '密碼錯誤,登錄失敗,數(shù)據(jù)來源于mysql'
???
except Exception,e:
???????
print '登錄失敗,錯誤原因:%s' % e
???
finally:
??????? conn.close()

  • 創(chuàng)建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()

#根據(jù)用戶名查詢密碼
??????? #
先到redis上查,沒有再到mysql上查
??????? r=StrictRedis()
??????? result=r.get(uname)
???????
if result==None:
??????????
?mysql_login()
???????
else:
???????????
#redis中找到了這個用戶名的數(shù)據(jù)
???????????
if result==upwd_sha1:
???????????????
print '登錄成功,數(shù)據(jù)來源于redis'
???????????
else:
???????????????
print '密碼錯誤,登錄失敗,數(shù)據(jù)來源于redis'
???
exceptException,e:
???????
print '登錄失敗,錯誤原因:%s'%e

總結(jié)

以上是生活随笔為你收集整理的数据库实例:mysql与redis结合用户登录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。