Redis 与 Python 交互

1. Python 库安装

2. 交互代码范例

3. Redis 操作封装

4. 应用范例:用户登录

 

 

1. Python 库安装

联网安装

pip install redis

使用源码安装

中文官网查找客户端代码

unzip redis-py-master.zip
cd redis-py-master
python setup.py install

 

2. 交互代码范例

 1 import redis
 2 
 3 
 4 # 1.连接 Redis 服务器
 5 try:
 6     r=redis.StrictRedis(host='localhost', port=6379)
 7 except Exception as e:
 8     print(e.message)
 9 
10 # 2.读写数据
11 # 方式一:根据数据类型的不同,调用相应的方法,完成读写
12 r.set('name','hello')  # 设置 string 数据
13 r.get('name')  # 读取 string 数据
14 
15 # 方式二:使用 pipline
16 # 缓冲多条命令,然后一次性执行,减少数据传输频率,从而提高效率
17 pipe = r.pipeline()
18 pipe.set('name', 'world')
19 pipe.get('name')
20 pipe.execute()

 

3. Redis 操作封装

  • 连接 Redis 服务器部分是一致的。
  • 将 String 类型的读写进行封装。
 1 import redis
 2 
 3 
 4 # Redis 工具类
 5 class RedisTool():
 6    
 7     # 初始化连接 Redis
 8     def __init__(self, host='localhost', port=6379):
 9         self.__redis = redis.StrictRedis(host, port)
10        
11     # 读取 String 值
12     def get(self, key):
13         if self.__redis.exists(key):  # 如果键存在
14             return self.__redis.get(key)
15         else:  # 否则返回空值
16             return ""
17 
18     # 设置 String 键值       
19     def set(self, key, value):
20         self.__redis.set(key, value)

 

4. 应用范例:用户登录

业务过程如下:

  1. 输入用户名、密码
  2. 密码加密
  3. 判断 Redis 中是否记录了用户名,如果有则成功
  4. 如果 Redis 中没有用户名,则到 MysqL查询
  5. MysqL查询成功后,将用户名记录到 Redis
 1 from t2 import RedisTool
 2 from t3 import MysqLTool
 3 import hashlib
 4 
 5 
 6 name=input("请输入用户名:")
 7 pwd=input("请输入密码:")
 8 
 9 # 密码加密
10 sha1=hashlib.sha1()
11 sha1.update(pwd)
12 pwd1=sha1.hexdigest()
13 
14 # 判断 Redis 中是否存在该用户信息的缓存数据
15 try:
16     redis=RedisTool()
17     if redis.get('uname') == name:
18         print('ok')
19     # 不存缓存,则走数据库进行用户信息校验
20     else:
21         MysqL = MysqLTool('localhost', 3306, 'test1', 'root', 'MysqL')
22         upwd = MysqL.get_one('select upwd from userinfos where uname=%s', [name])
23         if upwd == None:
24             print('用户名错误')
25         elif upwd[0] == pwd1:
26             redis.set('uname', name)  # 用户信息校验通过,则写入缓存
27             print('登录成功')
28         else:
29             print("密码错误")
30 except Exception as e:
31     print(e.message)

 

 

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...