Python 趣味练习- 保存激活码到mysql和redis

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介:

第 0001 题: 做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)?

第 0002 题: 将 0001 题生成的 200 个激活码(或者优惠券)保存到 MySQL 关系型数据库中。

第 0003 题: 将 0001 题生成的 200 个激活码(或者优惠券)保存到 Redis 非关系型数据库中。


实现的代码如下所示:

生成激活码的模块uuid,这里可以使用uuid1,4,5等等,主要区别是不同的加密算法和生成因子,我这里使用uuid4,就是纯随机的

数据库的操作我是通过pymysql实现的。基本操作可以参考 http://beanxyz.blog.51cto.com/5570417/1871039

redis的操作是通过redis模块实现的。基本操作可以参考http://beanxyz.blog.51cto.com/5570417/1870139


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/env python
#! -*- coding:utf-8 -*-
# Author: Yuan Li
 
import  uuid
import  pymysql
import  redis
 
 
def  generate_key(num):
     li = []
     for  in  range (num):
         #uuid4是随机生成的验证码
         =  uuid.uuid4()
         valuekey  =  str (S)
         li.append(valuekey)
     return  li
     
def  save_db(keys):
#绑定数据库和表
     conn  =  pymysql.connect(host = 'sydnagios' , port = 3306 , user = 'yli' , passwd = 'yli' , db = 'test' )
     #通过游标来执行sql语句
     cursor  =  conn.cursor(cursor = pymysql.cursors.DictCursor)
     for  valuekey  in  keys:
     # 把值插入表中
         cursor.execute( "insert into Code(serial) value (%s)" , (valuekey))
     conn.commit()
     # 查询一下表的结果
     cursor.execute( 'select * from Code' )
     # 输出结果
     row  =  cursor.fetchall()
     for  item  in  range ( len (row)):
         print (row[item])
     cursor.close()
     conn.close()
import   redis
def  save_redis(keys):
     =  redis.Redis(host = 'sydnagios' , port = 6379 )
     for  item  in  keys:
         r.lpush( 'list1' ,item)
if  __name__  = =  '__main__' :
     li = generate_key( 20 )
     save_db(li)
     save_redis(li)


执行脚本的效果:

控制台

wKioL1ne-o2yJhZZAABC7huunIU285.png


redis缓存

wKiom1ne_USRjueTAABCWVAs6M4663.png


mysql数据库

wKioL1ne-o2TRPenAAA3FYU7vVA513.png






本文转自 beanxyz 51CTO博客,原文链接:http://blog.51cto.com/beanxyz/1971685,如需转载请自行联系原作者

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
打赏
0
0
0
0
235
分享
相关文章
Redis和Mysql如何保证数据⼀致?
1. 先更新Mysql,再更新Redis,如果更新Redis失败,可能仍然不⼀致 2. 先删除Redis缓存数据,再更新Mysql,再次查询的时候在将数据添加到缓存中 这种⽅案能解决1 ⽅案的问题,但是在⾼并发下性能较低,⽽且仍然会出现数据不⼀致的问题,⽐如线程1删除了 Redis缓存数据,正在更新Mysql,此时另外⼀个查询再查询,那么就会把Mysql中⽼数据⼜查到 Redis中 1. 使用MQ异步同步, 保证数据的最终一致性 我们项目中会根据业务情况 , 使用不同的方案来解决Redis和Mysql的一致性问题 : 1. 对于一些一致性要求不高的场景 , 不做处理例如 : 用户行为数据 ,
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
Redis与MySQL的数据一致性
在高并发环境下,保持 Redis 和 MySQL 的数据一致性是一个复杂但重要的问题。通过采用读写穿透、写穿透、分布式锁、双写一致性保障和延时双删策略,可以有效地减少数据不一致的风险,确保系统的稳定性和可靠性。通过合理的缓存策略和数据同步机制,可以显著提升系统的性能和用户体验。
141 22
Python中使用MySQL模糊查询的方法
本文介绍了两种使用Python进行MySQL模糊查询的方法:一是使用`pymysql`库,二是使用`mysql-connector-python`库。通过这两种方法,可以连接MySQL数据库并执行模糊查询。具体步骤包括安装库、配置数据库连接参数、编写SQL查询语句以及处理查询结果。文中详细展示了代码示例,并提供了注意事项,如替换数据库连接信息、正确使用通配符和关闭数据库连接等。确保在实际应用中注意SQL注入风险,使用参数化查询以保障安全性。
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
160 14
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
179 7
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
248 26
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
283 7
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
492 15
Python怎么操作Mysql数据库
Python怎么操作Mysql数据库
112 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等