Python操作redis和mongoDB的方法

一、操作redis

redis是一个key-value存储系统,value的类型包括string(字符串),list(链表),set(集合),zset(有序集合),hash(哈希类型)。为了保证效率,数据都是缓冲在内存中,在处理大规模数据读写的场景下运用比较多。

备注:默认redis有16个数据库,即db0~db15, 一般存取数据如果不指定库的话,默认都是存在db0中。

resid提供2种连接方式:直接连接、连接池连接

1、直接连接示例:

import redis             # pip3 install redis
# 创建redis连接对象
def init_redis():
  redis_config = {
    "host": "172.29.0.17",
    "port": 6379
  }
  global Redis_Conn
  Redis_Conn = redis.Redis(**redis_config)
  # Redis_Conn = redis.Redis(host='172.29.0.17', port=6379, db=1)  # 指定数据库

# 插入值,Value为str类型为例
def insert_redis_key_value(key,value):
  Redis_Conn.set("name","Zhu")
# 获取值,Value为str类型为例
def get_redis_key_value(key):
  global Redis_Conn
  print("redis key value: %s" % Redis_Conn.get(key))

连接池的原理是, 通过预先创建多个连接, 当进行redis操作时, 直接获取已经创建的连接进行操作, 而且操作完成后, 不会释放, 用于后续的其他redis操作,这样就达到了避免频繁的redis连接创建和释放的目的, 从而提高性能。

redis模块采用ConnectionPool来管理对redis server的所有连接。

2、连接池连接示例:

import redis
pool = redis.ConnectionPool(host='172.29.0.17', port=6379,db=1)
red = redis.Redis(connection_pool=pool)
red.set('key1', 'value1')
red.set('key2', 'value2')

二、操作mongoDB

1、mongoDB 是一个非关系型数据库(NoSQL),介于关系数据库和非关系数据库之间的产品。拥有很多优秀特性,例如高性能、高可用、支持丰富的查询语句、无需预定义数据模型和水平可伸缩等。

2、mongoDB是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。

3、mongoDB最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

4、mongoDB 的适用场景为:数据不是特别重要(例如通知,推送)、数据表结构变化较为频繁、数据量特别大、数据的并发性特别高、数据结构比较特别(例如地图的位置坐标),

这些情况下用 mongoDB , 其他情况就还是用MySQL ,这样组合使用就可以达到最大的效率。

import pymongo            # pip3 install pymongo
# 创建mongo连接对象
def init_mongo():
  global Mongo_Conn
  Mongo_Conn = pymongo.MongoClient(host="172.29.0.14", port=27017)
  admin = Mongo_Conn.admin
  admin.authenticate('root', '')
# 数据操作
def get_mongo_key_value(token_id):
  db = Mongo_Conn['device_center']             # 创建数据库"device_center",命名为"db"
  col = db['token_info']                  # 创建集合"token_info",命名为"col"
  mydict = {"name": "Zhuyu", "alexa": "160", "sex": "male"}
  col.insert_one(mydict)                  # 插入一条数据
  mylist = [
  {"name": "ating", "alexa": "168", "sex": "male"},
  {"name": "Liang", "alexa": "165", "sex": "female"},
  {"name": "Libai", "alexa": "156", "sex": "female"}
  ]
  col.insert_one(mylist)                    # 插入一组数据
  query1 = col.find_one()                # 查询一条数据
  query2 = col.find({},{"alexa": 1})           # 查询指定字段的数据
  query3 = col.find()                  # 查询集合中的所有数据
  query4 = col.find({"name": "ating"})          # 根据指定条件查询
  myquery1 = { "alexa": "160" }
  newvalues1 = { "$set": { "alexa": "161" } }
  col.update_one(myquery1, newvalues1)           # 修改匹配到的第一条记录
  myquery2 = { "name": { "$regex": "^L" } }
  newvalues2 = { "$set": { "alexa": "123" } }
  col.update_many(myquery2, newvalues2)          # 修改所有匹配到的记录,将查找所有以 L 开头的 name 字段,并将匹配到所有记录的 alexa 字段修改为 123
  query5 = col.find().sort("alexa")           # sort() 方法第一个参数为要排序的字段,第二个字段指定排序规则,1 为升序,-1 为降序,默认为升序
  for x in query5 :
    print(x)
  # 结果
  {"name": "Libai", "alexa": "156", "sex": "female"}
  {"name": "Zhuyu", "alexa": "160", "sex": "male"}
  {"name": "Liang", "alexa": "165", "sex": "female"}
  {"name": "ating", "alexa": "168", "sex": "male"}
  query6 = col.find().sort("alexa",-1)          # 降序
  for x in query6:
    print(x)
  # 结果
  {"name": "ating", "alexa": "168", "sex": "male"}
  {"name": "Liang", "alexa": "165", "sex": "female"}
  {"name": "Zhuyu", "alexa": "160", "sex": "male"}
  {"name": "Libai", "alexa": "156", "sex": "female"}
  myquery3 = { "name": "Libai" }             # 删除一条数据
  mycol.delete_one(myquery3)
  myquery4 = { "name": {"$regex": "^L"} }        # 删除多个数据
  x1 = mycol.delete_many(myquery4)
  print(x1.deleted_count, "个文档已删除")        # 2个文档已删除
  x2 = mycol.delete_many({})               # 删除集合中的所有数据
  print(x2.deleted_count, "个文档已删除")        # 4个文档已删除
# 断开mongo连接
def disconnect_mongo():
  Mongo_Conn.disconnect()

总结

以上所述是小编给大家介绍的Python操作redis和mongoDB的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • Python获取Redis所有Key以及内容的方法

    一.获取所有Key # -*- encoding: UTF-8 -*- __author__ = "Sky" import redis pool=redis.ConnectionPool(host='127.0.0.1',port=6379,db=0) r = redis.StrictRedis(connection_pool=pool) keys = r.keys() print type(keys) print keys 运行结果: <type 'list'> ['fa

  • Python访问MongoDB,并且转换成Dataframe的方法

    如下所示: #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/7/13 11:10 # @Author : baoshan # @Site : # @File : pandans_pymongo.py # @Software: PyCharm Community Edition import pymongo import pandas as pd def _connect_mongo(host, port, username

  • Python实现的redis分布式锁功能示例

    本文实例讲述了Python实现的redis分布式锁功能.分享给大家供大家参考,具体如下: #!/usr/bin/env python # coding=utf-8 import time import redis class RedisLock(object): def __init__(self, key): self.rdcon = redis.Redis(host='', port=6379, password="", db=1) self._lock = 0 self.lock

  • Python常见MongoDB数据库操作实例总结

    本文实例讲述了Python常见MongoDB数据库操作.分享给大家供大家参考,具体如下: MongoDB 是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型.Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可

  • python连接MySQL、MongoDB、Redis、memcache等数据库的方法

    用Python写脚本也有一段时间了,经常操作数据库(MySQL),现在就整理下对各类数据库的操作,如后面有新的参数会补进来,慢慢完善. 一,python 操作 MySQL:详情见:[apt-get install python-mysqldb] 复制代码 代码如下: #!/bin/env python# -*- encoding: utf-8 -*-#-------------------------------------------------------------------------

  • python操作redis方法总结

    连接 Redis import redisc 连接方式:redis提供了2个方法 1:StrictRedis:实现大部分官方的命令 2:Redis:是StrictRedis的子类,用于向后兼容旧版的redis. 官方推荐使用StrictRedis方法. 举例(普通连接): import redis #decode_responses=True 自动解码 r = redis.Redis(host='127.0.0.1',port=6379,password='123456',db=0,decode

  • Python操作redis和mongoDB的方法

    一.操作redis redis是一个key-value存储系统,value的类型包括string(字符串),list(链表),set(集合),zset(有序集合),hash(哈希类型).为了保证效率,数据都是缓冲在内存中,在处理大规模数据读写的场景下运用比较多. 备注:默认redis有16个数据库,即db0~db15, 一般存取数据如果不指定库的话,默认都是存在db0中. resid提供2种连接方式:直接连接.连接池连接 1.直接连接示例: import redis # pip3 install

  • Windows下安装Redis及使用Python操作Redis的方法

    首先说一下在Windows下安装Redis,安装包可以在https://github.com/MSOpenTech/redis/releases中找到,可以下载msi安装文件,也可以下载zip的压缩文件. 下载zip文件之后解压,解压后是这些文件: 里面这个Windows Service Documentation.docx是一个文档,里面有安装指导和使用方法. 也可以直接下载msi安装文件,直接安装,安装之后的安装目录中也是这些文件,可以对redis进行相关的配置. 安装完成之后可以对redi

  • python操作redis的方法

    本文实例讲述了python操作redis的方法.分享给大家供大家参考.具体如下: #!/usr/bin/python #coding=utf-8 import redis class CRedis: def __init__(self): self.host = 'localhost' self.port = 6379 self.db = 0 self.r = redis.Redis(host = self.host, port = self.port, db = self.db) #1. st

  • Python操作Redis之设置key的过期时间实例代码

    Expire 命令用于设置 key 的过期时间.key 过期后将不再可用. r.set('2', '4028b2883d3f5a8b013d57228d760a93') #成功就返回True 失败就返回False,下面的20表示是20秒 print r.expire('2',20) #如果时间没事失效我们能得到键为2的值,否者是None print r.get('2') 对于一个已经存在的key,我们可以设置其过期时间,到了那个时间后,当你再去访问时,key就不存在了 有两种方式可以设置过期时间

  • Python操作redis实例小结【String、Hash、List、Set等】

    本文实例总结了Python操作redis方法.分享给大家供大家参考,具体如下: 这里介绍详细使用 1.String 操作 redis中的String在在内存中按照一个name对应一个value来存储 set() #在Redis中设置值,默认不存在则创建,存在则修改 r.set('name', 'zhangsan') '''参数: set(name, value, ex=None, px=None, nx=False, xx=False) ex,过期时间(秒) px,过期时间(毫秒) nx,如果设

  • Python连接Redis的基本配置方法

    在Linux系统下Python连接Redis的基本配置方法具体操作步骤 系统环境: OS:Oracle Linux Enterprise 5.6 Redis:redis-2.6.8 Python:Python-2.7.3 redis的python包版本:redis-2.7.2.tar 前提条件: 1.确保Redis已成功安装并且正确配置,参考文档 主从配置文档: //www.jb51.net/article/147397.htm 2.确保Python环境已成功配置,参考文档 https://ww

  • go语言操作redis连接池的方法

    本文实例讲述了go语言操作redis连接池的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: func newPool(server, password string) *redis.Pool {     return &redis.Pool{         MaxIdle: 3,         IdleTimeout: 240 * time.Second,         Dial: func () (redis.Conn, error) {             c

  • python操作日期和时间的方法

    不管何时何地,只要我们编程时遇到了跟时间有关的问题,都要想到 datetime 和 time 标准库模块,今天我们就用它内部的方法,详解python操作日期和时间的方法.1.将字符串的时间转换为时间戳 复制代码 代码如下: 方法:a = "2013-10-10 23:40:00"#将其转换为时间数组import timetimeArray = time.strptime(a, "%Y-%m-%d %H:%M:%S")#转换为时间戳:timeStamp = int(t

  • python操作ie登陆土豆网的方法

    本文实例讲述了python操作ie登陆土豆网的方法.分享给大家供大家参考.具体如下: 这里利用ie操作登陆土豆网,很简单,仅做一下记录,以备后用. # -*- coding: utf-8 -*- import win32com.client import time ie6=win32com.client.Dispatch("InternetExplorer.Application") ie6.Navigate("http://login.tudou.com/login.do?

  • Python操作Oracle数据库的简单方法和封装类实例

    本文实例讲述了Python操作Oracle数据库的简单方法和封装类.分享给大家供大家参考,具体如下: 最近工作有接触到Oracle,发现很多地方用Python脚本去做的话,应该会方便很多,所以就想先学习下Python操作Oracle的基本方法. 考虑到Oracle的使用还有一个OracleClient的NetConfig的存在,我觉得连接起来就应该不是个简单的事情. 果然,网上找了几个连接方法,然后依葫芦却画了半天,却也不得一个瓢. 方法1:用户名,密码和监听分别作为参数 conn=cx_Ora

随机推荐