python数据库操作——NoSQL数据库之连接MongoDB、Redis数据库


  hello!我是wakeyo_J,每天一个konwledge point,一起学python,让技术无限发散。


NoSQL数据库之连接MongoDB、Redis数据库

  • python数据库操作——NoSQL数据库之连接MongoDB、Redis数据库
  • 1. NoSQL数据库支持清单
  • 2. 连接MongoDB
    • 2.1 MongoDB数据库安装
    • 2.2 pymongo数据库驱动程序安装
    • 2.3 python程序与MongoDB数据库的数据操作
  • 3. 连接Redis
    • 3.1 安装Redis数据库
    • 3.2 安装Redis数据库驱动程序
    • 3.3 python程序连接Redis数据库
  • 总结

  随着大数据的兴起,NoSQL数据库为大数据我呢提的解决提供了全新的数据库技术支持。通过python语言与NoSQL技术的结合,给科学计算、大数据分析、人工智能技术的应用提供了一套成熟的解决思路。

1. NoSQL数据库支持清单

python官网提供了可以支持的部分NoSQL数据库产品清单,如下所示

NoSQL数据库产品 数据库下载地址
MetaKit http://www.equi4.com/metakit/
ZODB httP://pypi.python.org/pypi/ZODB3
BerkeleyDB http://www.jcea.es/programaction/pybsddb.htm
KirbyBase http://www.netpromi.com/kirbybase_python.html
Durus http://wiki.python.org/moin/Durus
buzhug http://wiki.python.org/moin/buzhug
Neo4j http://neo4j.com/
SnakeSQL http://www.pythonweb.org/projects/snakesql/

  其实,上述清单很不全面,一些著名的NoSQL数据库产品都没有提及,大家可以根据不同的NoSQL数据库产品,通过网上查找python语言对应的数据库驱动程序接口软件包。一般优秀的NoSQL产品官网上都会明确的罗列出数据库驱动程序所支持的编程语言的种类。

2. 连接MongoDB

  MongoDB是基于文档数据处理的一款优秀的NoSQL数据库产品。要实现python程序与MongoDB数据库连接,需要安装MongoDB数据库,然后安装pymongo数据库驱动程序,最后通过python程序与数据库进行数据交互操作。

2.1 MongoDB数据库安装

  MongoDB官网提供了详细的安装操作教程,https://docs.mongodb.com/manual/installation/
或者可以参考博客:https://blog.csdn.net/weixin_33446857/article/details/79889245

  安装完成MongoDB数据库后,需要启动数据库服务(mongod)才能正式被使用。一次性启动可以采用如下命令:

C:\User\win>cd /d d:\mongodb\data\bin
d:\mongodb\data\bin>mongod-dbpath “d:\mongodb\data\db” #输入时注意参数之间的一个空格

2.2 pymongo数据库驱动程序安装

  在计算机联网情况下,采用pip install pymongo命令进行安装。

2.3 python程序与MongoDB数据库的数据操作

  1. 连接MongoDB数据库,插入记录、查找记录
import pymongo
from  pymongo.mongo_client import MongoClient         #导入mongodb客户端服务模块
import pymongo.errors                                 #导入出错模块T_fish=set()try:mongoClient = MongoClient("localhost",27017)       #建立mongodb数据库客户端连接通道mongoDatabase = mongoClient.goods                  #若没有goods数据库则重新建立新空库,否则建立与goods数据库的连接print("数据库连接成功!!")mongoCollection = mongoDatabase.T_fish             #若没有T_fish集合则建立空集合,否则建立与T_fish集合的连接mongoCollection.remove()                            #一处该集合大的所有记录mongoCollection.insert_many([                       #用insert_many()方法添加三行数据{"_id":"1","data":"2018年3月28日","name":"黑鱼","nums":"10","price":"28.3","Explain":"Tome"},{"_id": "2", "data": "2018年5月28日", "name": "鲫鱼", "nums": "20", "price": "10", "Explain": "jerry"},{"_id": "3", "data": "2018年6月28日", "name": "鲤鱼", "nums": "30", "price": "8", "Explain": "Tim"}])for row in mongoCollection.find():print(row)
except pymongo.errors.ProtocolError as e:print("操作MongoDB过程出错:",e)

结果:

  1. 修改记录、删除记录
import pymongo
from  pymongo.mongo_client import MongoClient
import pymongo.errorsT_fish=set()try:mongoClient = MongoClient("localhost",27017)mongoDatabase = mongoClient.goodsprint("数据库连接成功!!")mongoCollection = mongoDatabase.T_fishmongoCollection.update({"_id":"1"},{"$set":{"nums":"20"}})      #修改一条数据记录mongoCollection.delete_one({'_id':"3"})                         #删除一条数据记录for row in mongoCollection.find():print(row)
except pymongo.errors.ProtocolError as e:print("操作MongoDB过程出错:",e)

结果:

  想要全面了解pymongo数据库驱动程序的使用,可以参考:http://api.mongodb.com/python/current/api/pymongo/collection.html
更多关于mongodb的操作可参考:https://blog.csdn.net/liuzuoping/article/details/100116687

3. 连接Redis

  Redis主要基于计算机内存进行非关系型数据库的高效处理,在NoSQL数据库产品排行榜上居于前列。

3.1 安装Redis数据库

  Redis数据库下载地址:https://redis.io/download,安装过程参考:https://www.cnblogs.com/skmobi/p/11696620.html

3.2 安装Redis数据库驱动程序

  Redis数据库驱动程序下载地址:https://pypi.python.org/pypi/redis/2.10.5,完成redis-py-master.zip下载并解压后,可以通过如下操作实现数据库驱动程序的安装。

3.3 python程序连接Redis数据库

  1. 连接Redis数据库
import redis
rdb = redis.Redis(host="127.0.0.1",port=6379,db=0)  #连接Redis0号数据库
rdb.set("name","TOMCAT")                            #建立一个键为“name"值为TOMCAT的字符串
print(rdb.get("name"))                              #读取字符串并打印
rdb.shutdown()

结果:

  1. 用连接池方式连接Redis数据库
      当大规模访问Redis数据库时,单独一个个建立数据库连接,需要产生很大内存空间消耗,影响数据库的 运行及响应速度。为此,引入了数据库连接池,通过在内存共享连接资源避免内存消耗的问题。
      Redis数据库启动器,使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销,这就可以实现多个Redis实例共享一个连接池。
import redis
pool = redis.ConnectionPool(host="127.0.0.1",port=6379)
rdb = redis.Redis(connection_pool=pool)
rdb.set("name","TOMCAT")
print(rdb.get("name"))
rdb.shutdown()

结果:

更多关于python对于redis的操作可参考:https://blog.csdn.net/qq_37289115/article/details/106353254


总结

  本文属于作者原创,转载请注明出处,不足之处,希望大家能过给予宝贵的意见,如有侵权,请私信。每天一个knowledge point,一起学python,让技术无限发散

python数据库操作——NoSQL数据库之连接MongoDB、Redis数据库相关推荐

  1. DML语言(数据库操作语言)和DQL语言(数据库查询语言)

    DML语言(数据库操作语言)和DQL语言(数据库查询语言) 1.DML语言(Data Manipulation Language) 1.1.添加语句(insert) INSERT INTO `teac ...

  2. navicat无法连接远程mysql数据库_[数据库]Navicat Premium 解决无法连接远程mysql数据库问题...

    [数据库]Navicat Premium 解决无法连接远程mysql数据库问题 0 2018-07-18 00:00:15 问题原因 :  第一点 远程服务器数据库没有授权 第二点 远程连接数据库的端 ...

  3. 问题记录-python连接远程主机redis数据库时无法成功连接

    虚拟机图形界面解决办法 设置centos上的redis可以被访问 - pyhui的python全栈技术博客 - CSDN博客 https://blog.csdn.net/ifubing/article ...

  4. 27.Python数据库操作(一)【内置数据库SQLite和ORM框架SQLAlchemy】

    目录: 每篇前言: Python数据库操作(一) 1.1 SQLite 1.2 ORM框架SQLAlchemy 每篇前言:

  5. 【Docker制作镜像】Linux制作以python为基础镜像,融合Flask框架和Redis数据库

    步骤 1.编辑Dockerfile 2.编辑requirements.txt文件 3.编辑app.py文件 4.生成镜像文件 5.使用镜像,启动容器 6.访问容器的web服务 7.启动redis容器 ...

  6. python数据库操作批量sql执行_Python批量修改数据库执行Sql文件

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  7. 通达oa oracle数据库,通达OA 2016系统连接ORACLE 11g数据库(图文)

    通达OA应该对Oracle是支持的,在数据源里还有ERP数据源的选项有sqlserver和Oracle的选项呢. 使用OA连接Oracle还是需要一些设置的. 1.先下载Oracle的客户端支持程序 ...

  8. java遍历数据库的东西_java遍历读取整个redis数据库实例

    redis提供了灵活的数据查询方式,最牛的就是key的搜索支持正则表达式. jedis.keys("*");表示搜索所有key jedis.keys("abc*" ...

  9. Python使用pymongo连接MongoDB数据库并进行操作

    一.基本概述 目前电脑上已经下载了MongoDB数据库.navicat for mongodb作为mongoDB的可视化工具,形如navicat for mysql作为mysql的可视化工具. 使用P ...

  10. Python封装MySQL数据库操作(pymysql)

    Python封装MySQL数据库操作(pymysql) # 连接MySQL class DbManager(object):# 构造函数def __init__(self):self.conn = N ...

最新文章

  1. 良心贴!没想到 Google 排名第一的编程语言,可以这么简单!
  2. hibernate加载持久化对象的两种方式---------------load方式和get方式
  3. H5页面遮罩弹框下层还能滚动的问题
  4. CSS background属性
  5. mysql 存储过程 排序_更改MySQL存储过程“数据库排序规则”的名称
  6. local map at cambridge
  7. nagios监控mysql
  8. linux自带磁盘加密工具下载,TrueCrypt(磁盘加密工具)
  9. 企业实战(Jenkins+GitLab+SonarQube)_11_Jenkins权限的划分
  10. 信息学奥赛一本通(1183:病人排队)
  11. spark学习-28-Spark数据倾斜问题
  12. webclient对reactor-netty的封装
  13. Java: 将中文省市名转换为指定格式拼音
  14. 不用找,你想要的凹凸贴图素材都在这里
  15. bootstrap 可以拖动 表格宽度_table表格列宽可拖动
  16. 计算机考研各省份学校,想考研究生,哪个省份的高校更容易考上?
  17. TS实现Base64的加密解密
  18. ROS学习笔记(2)——ROS通信机制
  19. CAS单点登录:CAS服务端搭建
  20. 小技巧,怎么查看数据库热度排名

热门文章

  1. java web 缓存省市县_实现 Java 本地缓存,该从这几点开始
  2. sql string转换成int型 sql截取字符串
  3. 论文笔记_S2D.61_2019-CVPR-DeepLiDAR:基于稀疏激光雷达数据和单张彩色图像的户外场景的表面法线引导的深度预测
  4. Python Bug: TypeError: a bytes-like object is required, not ‘str
  5. 海外博士一般朝九晚五,国内博士动辄十几小时科研时间,为什么普遍认为海外博士水平较高?...
  6. 小Q正在给一条长度为n的道路设计路灯安置方案。 为了让问题更简单,小Q把道路视为n个方格,需要照亮的地方用'.'表示, 不需要照亮的障碍物格子用'X'表示。
  7. linux下获取主机信息
  8. CodeForces 148D-Bag of mice(概率dp)
  9. 详解 ASP.NET并行,异步,多线程
  10. 20140711 set