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)

Redis 与 Python 交互的更多相关文章

  1. redis与python交互

    import redis #连接 r=redis.StrictRedis(host="localhost",port=6379,password="sunck" ...

  2. 工大助手(C#与python交互)

    工大助手(爬虫--C#与python交互) 基本内容 工大助手(桌面版) 实现登陆.查成绩.计算加权平均分等功能 团队人员 13070046 孙宇辰 13070003 张帆 13070004 崔巍 1 ...

  3. 深入浅出 Redis client/server交互流程

    综述 最近笔者阅读并研究redis源码,在redis客户端与服务器端交互这个内容点上,需要参考网上一些文章,但是遗憾的是发现大部分文章都断断续续的非系统性的,不能给读者此交互流程的整体把握.所以这里我 ...

  4. Redis的Python实践,以及四中常用应用场景详解——学习董伟明老师的《Python Web开发实践》

    首先,简单介绍:Redis是一个基于内存的键值对存储系统,常用作数据库.缓存和消息代理. 支持:字符串,字典,列表,集合,有序集合,位图(bitmaps),地理位置,HyperLogLog等多种数据结 ...

  5. Redis的Python客户端redis-py的初步使用

    1. Redis的安装 sudo pip install redis sudo pip install hiredis Parser可以控制如何解析redis响应的内容.redis-py包含两个Par ...

  6. Python教程(1.2)——Python交互模式

    上一节已经说过,安装完Python,在命令行输入"python"之后,如果成功,会得到类似于下面的窗口: 可以看到,结尾有3个>符号(>>>).>&g ...

  7. 区分命令行模式和Python交互模式

    命令行模式 在Windows开始菜单选择"命令提示符",就进入到命令行模式,它的提示符类似C:\> Python交互模式 在命令行模式下敲命令python,就看到类似如下的一 ...

  8. 命令行以及Python交互模式下python程序的编写

    一.命令行模式 在Windows开始菜单选择“命令提示符”,就进入到命令行模式,它的提示符类似C:\>: 二.Python交互模式 在命令行模式下敲命令python,就看到类似如下的一堆文本输出 ...

  9. LinuxMint上安装redis和python遇到的一些问题

    今天在安装Redis和Python上遇到了些问题,解决后记录下来. 环境:LinuxMint 18.3 安装redis sudo wget http://download.redis.io/relea ...

随机推荐

  1. 零信任三大技术之SDP

    SDP概述 SDP Software Defined Perimeter(软件定义边界),2013 年由云安全联盟 CSA提出. SDP 设计基本原则 1.信息隐身:隐藏服务器地址.端口,使之不被扫描 ...

  2. C# ref and out

    相同点: 1. ref 和 out 都是按地址传递的,使用后都将改变原来参数的数值: 2. 方法定义和调用方法都必须显式使用 ref 或者 out关键字: 3. 通过ref 和 ref 特性,一定程度 ...

  3. Kubernetes Container lifecycle hooks

    简介 在kubernetes中,容器hooks旨在解决服务进程启动与停止时的一些优雅操作需求.比如说进程停止时要给进程一个清理数据的时间,保证服务的请求正常结束,而不是强行中断服务的运行,这样在生产环 ...

  4. vue打开新窗口并且实现传参,有图有真相

    我要实现的功能是打开一个新窗口用来展示新页面,而且需要传参数,并且参数不能显示在地址栏里面,而且当我刷新页面的时候,传过来的参数不能丢失,要一直存在,除非我手动关闭这个新窗口,即浏览器的标签页. 通过 ...

  5. 用java输出"Hello,World!"

    Hello,World! 一般步骤 随便新建一个文件夹,存放代码 新建一个java文件 新建.txt文档 文件后缀名改为.java Hello.java [注意]系统可能没有显示后缀名,我们需要手动打 ...

  6. 记一次Drone无法触发构建的问题

    问题 好巧不巧,当你晚上准备上线的时候,在下午临近下班的时候CI&CD工具出问题了,提交代码不能触发构建,不能上线了,Drone平台那边也下班了,正好CICD依赖的公司git仓库也出问题了(就 ...

  7. freebsd升级时出错,没有ntp用户解决

    freebsd升级出错,没有ntp用户 终端执行命令 pw groupadd ntpd -g 123 pw useradd ntpd -u 123 -g ntpd -h - -d /var/db/nt ...

  8. WPF 应用 - 通过 js 缩放 System.Windows.Controls.WebBrowser 的内容

    1. 前提 原本是在大屏上展示系统,系统有个功能是加载第三方的网站,第三方网站按照大屏的分辨率写死了宽高: 现需要改到小屏展示系统,而这个第三方的网站不能随着 WebBrowser 窗口的尺寸调整网站 ...

  9. Hive相关的命令

    hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行. 其优点是学习成本低,可以通过 ...

  10. 攻防世界 reverse debug

    debug  XCTF 3rd-GCTF-2017 .net程序,这里我用的dnspy,当然.net Reflector也很好用. 查看程序,发现是明文比较,下断,debug,完成. flag{967 ...