• 安装pymysql:
pip3 install pymysql
  • 通过练习来了解python和mysql的交互过程
#1.连接数据库
db = pymysql.Connect(
host = 'localhost',    #本地的地址
user='root',     #账号
passwd='********',     #密码
db='srs',    #数据库名称
port=3306,    #端口
charset='utf8'    #字符串编码
)
#2.获取游标  开辟一个缓冲区用于SQL语句的执行结果
cursor = db.cursor()
#3.执行sql语句,返回受影响的记录数
sql='select * from tbstudent'
cursor.execute(sql)
#4.获取结果
data = cursor.fetchell()
# 获取一个结果
data1=cursor.fetchone()
for i in data:
    print('id:%s name:%s' % (i[0],i[1]))

print(data)
print(data1)
#5.关闭连接
db.close()
  • 数据库的事物
  • 原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。
  • 一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态的含义是数据库中的数据应满足完整性约束。
  • 隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行。
  • 持久性(Durability):一个事务一旦提交,他对数据库的修改应该永久保存在数据库中。
  • 举例
    用一个常用的“A账户向B账号汇钱”的例子来说明如何通过数据库事务保证数据的准确性和完整性。熟悉关系型数据库事务的都知道从帐号A到帐号B需要6个操作
    1、从A账号中把余额读出来(500)。
    2、对A账号做减法操作(500-100)。
    3、把结果写回A账号中(400)。
    4、从B账号中把余额读出来(500)。
    5、对B账号做加法操作(500+100)。
    6、把结果写回B账号中(600)。
  • 通过python给数据库表里添加,删除数据
# -*- coding:utf-8 -*-

import pymysql
#1连接
db = pymysql.connect(
    host='localhost',
    user='root',
    passwd='chenchen',
    db='srs',
    port=3306,
    charset='utf8')
#2游标
cursor = db.cursor()
#3执行
try:
    sql = '''insert into tbcourse values
    (7777,'c25语言程序设计', 3 , '大神级讲师授课需要抢座')'''
    cursor.execute(sql)

    db.commit()
except:
    #5回滚
    db.rollback()
# try:
#   sql = '''delete from tbstudent where stuid=1001;'''
#   cursor.execute(sql)
#   db.commit()
# except:
#   db.rollback()

#data = cursor.fetchall()
#print(db)
#4关闭
db.close()
  • 初识redis
  • redis是一种高速高性能的内存数据库,存储的是键值对数据;
  • 由于极高的存储和访问速度,redis常被用来作为数据缓存服务器;
  • 另外redis是支持数据持久化的(即redis会自动将数据写入磁盘)
  • redis安装 阿里云服务器 通过指令:yum install redis安装
  • 支持的类型
  • 字符串(单个value最大支持512M);
  • 哈希hash(存储对象) ;
  • 列表list ;
  • 集合set ;
  • 有序集合zset;
  • 启动,运行
    a) 启动redis-server
    redis-cli
    b) 启动 /bin/systemctl start redis.service
    c) service start redis

进入配置文件(vim myredis.conf)
修改密码(查询 :/requireoass)大约在480行后加上密码一定要去掉(#)
修改地址 (查询 :/bind) 在60行左右 加上阿里云的私有ip地址,其他人就可以访问你
ps -aux | grep redis (查看redis的进程号)
kill + 进程号 (杀进程)
redis-server myredis.conf & (后台运行redis)
redis-cli (启动redis客户段)
自己连自己:

keys  *
    auth  (输入密码)
    ping一下自己,收到PONG的响应

访问指定IP:端口的redis服务器

redis-cli -h ip -p 端口
    redis-cli -h 172.26.77.93 -p 6379

    set p 1  设置 p的值为1
    get p    获取 p的值
    incr p   整数递增,默认值是0
    decr p   整数减少


    增
    set mykey "test"   为键设置新值,并覆盖原有值
    getset mycounter 0   设置值,取值同时进行
    setex mykey 10 "hello"  设置指定 Key 的过期时间为10秒,在存活时间可以获取value
    setnx mykey "hello"   若该键不存在,则为键设置新值
    mset key3 "stephen" key4 "liu"  批量设置键

    删
    del mykey  删除已有键

    改
    append mykey "hello"  若该键并不存在,返回当前 Value 的长度
                  该键已经存在,返回追加后 Value的长度
    incr mykey   值增加1,若该key不存在,创建key,初始值设为0,增加后结果为1
    decrby  mykey  5   值减少5
    setrange mykey 20 dd   把第21和22个字节,替换为dd, 超过value长度,自动补0

    查  
    exists mykey     判断该键是否存在,存在返回 1,否则返回0
    get mykey    获取Key对应的value
    strlen mykey  获取指定 Key 的字符长度
    ttl mykey     查看一下指定 Key 的剩余存活时间(秒数)
    getrange mykey 1 20  获取第2到第20个字节,若20超过value长度,则截取第2个和后面所有的的
    mget key3 key4   批量获取键