python操作redis和MySQL数据库

℡╲_俬逩灬. 提交于 2020-04-06 22:23:04

  python操作redis和MySQL数据库需要先分别导入模块:redis、pymysql

  如果这个库没有导入成功,则需要安装,用pip3 install pymysql,redis的库类似;两个数据库的基本命令我们也必须知道,数据库

的命令最好是在Linux里执行一下,看是否能够执行!以此来保证该代码不会出错,添加表或数据之后要记得相应的删除...

  要用python链接数据库,就必须要更改数据库的配置文件。

  更改mysql的配置文件  mysqld.cnf   ,输入命令:cd /etc/mysql/mysql.conf.d  进入该文件夹

    再输入命令:sudo vim mysqld.cnf,修改成下图的样子之后,保存退出!

    

    再输入命令:sudo service mysql restart 重启mysql服务

  更改redis的配置文件 redis.conf,输入命令:cd /etc/redis   sudo vim redis.conf   sudo service redis restart

  配置号python和数据库之后就可以用python来操作数据库了!

 

python操作MySQL数据库

  用pycharm连接MySQL数据库的命令:conn = pymysql.connect(host='127.0.0.1', port=33333, user='dcxm_1',

password='dcxm0608', db='massege'),port是转发的端口号,后面依次是用户名,密码,数据库名!也可以用字典的形式将参数传进

去,代码如下图所示:

          

  python操作数据库MySQL是要基于一个游标的东西,可以将它理解为python与数据库之间的一个快递员:

          

  返回了一个影响列6,如何拿到数据呢,可以使用下面的命令:cursor.fetchone(),使用该命令每次只拿一个数据!

          

  使用cursor.fetchmany(),可以指定拿到几条数据!注意数据都是以元组返回是的。

          

  使用上面两个命令之后,剩下的内容任然存于游标之中,所以我们可以使用cursor.fetchall()取出所有的数据!注意如果要一次性将

所有数据全部取出则要将本次命令在一开始就执行!

  建表:

          

  对该表进行增删查改:

   

  删除一些数据:

   

  查找表中的数据:

  

  如果想取得所有的值建议用execute命令,然后用fetchall命令全部取出...

  联合查询:

  

  在python中先将MySQL语句用一个字符串表示,然后再使用execute命令:

        

  我们可以发现,python操作MySQL数据库命令很简单,充分利用字符串格式化,每个命令不同之处在于MySQL本身的命令!

 

python操作redis数据库

先用pycharm与redis建立连接:如果你的redis设置了密码,则在端口号port后边要加一个参数password

  

  最后两行代码是测试redis是否连上,因为如果直接print red的话是不会报错的,如果没有连上,它任然成功!

Linux里例外一种连接方式:

 1 import redis
 2 
 3 # 连接数据库,创建SrictRedis对象,与redis服务器建立连接
 4 # sr = redis.StrictRedis(host="localhost", port=6379, db=0)
 5 sr = redis.StrictRedis()
 6 result = sr.set("name", "dan")
 7 print(result)
 8 
 9 response = sr.get("name")
10 print(response)
11 
12 sr.set("name", "伍佰danser")
13 response = sr.get("name")
14 response.decode("utf8")
15 print(response.decode("utf8"))
16 
17 # 删除数据
18 print(sr.delete("name"), sr.delete("name"))
19 # 上面已经介绍的连接:
20 s = redis.Redis(host="127.0.0.1", port=6379)
21 print(s.set("id", 6379))

运行结果如下:

  

 

  连接redis的时候要注意编码问题,我们在使用redis的时候如果要输出中文,返回的都是十六进制格式的!因为我们的redis数据库

是内存级数据库,所以保存0-1型数据是最快的,默认是utf-8编码的字节码

   

  

  所以我们在用python取数据的时候最后要解码!

  

  python操作redis的大部分命令是和redis的命令是一样的,只有一些是不同...

    ttl 和 expire 命令:ttl不难看负数,只能看已经设置了expire时间的:

    

    mset  incr  incrby  decr  decrby

     

    在python连接redis的操作中incr方法可以代替incrby方法,只需要如图所示在后边加一个数;decr类似。

    lrem 需要将删除的个数放到后边:

    先建立一个列表做试验:

    

    删除最后一个1:  

     

     redis中的结果如下:

                      

    全部删除某个元素: red.lrem('my_list', 'd', 0)  这里的0或者其他数字都可以不加引号

                      

    hmset  对哈希的操作:

    

    除此之外其他操作和原生命令一样!

 

 订阅与发布

  订阅:

    在一个python文件中连接redis,然后使用命令:red.publish('dan','hello')发布,第一个参数为频道

    在其他python文件中连接redis,然后订阅dan频道:

    设置订阅: p_s = red.pubsub()   #p_s 为定义的对象

    订阅频道:p_s.subscribe('dan')

         while True:

           #开始订阅

           print(p_s.parse_response())   #打印收到的信息

    

 

 

 

 

 

 

 

  

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!