Python来操作Redis、mongoDB非关系型数据库

1. Python来操作redis

pip install redis
import redis # 导入redis模块,通过python操作redis 也可以直接在redis主机的服务端操作缓存数据库

r = redis.Redis(host='localhost', port=6379, decode_responses=True)   # host是redis主机,需要redis服务端和客户端都启动 redis默认端口是6379
r.set('name', 'junxi')  # key是"foo" value是"bar" 将键值对存入redis缓存
print(r['name'])
print(r.get('name'))  # 取出键name对应的值
print(type(r.get('name')))
  • redis基本命令 String

set(name, value, ex=None, px=None, nx=False, xx=False)
在Redis中设置值,默认,不存在则创建,存在则修改

参数:
ex,过期时间(秒)
px,过期时间(毫秒)
nx,如果设置为True,则只有name不存在时,当前set操作才执行
xx,如果设置为True,则只有name存在时,当前set操作才执行
1.ex,过期时间(秒) 这里过期时间是3秒,3秒后p,键food的值就变成None

import redis 
pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(connection_pool=pool)
r.set('food', 'mutton', ex=3)    # key是"food" value是"mutton" 将键值对存入redis缓存
print(r.get('food'))  # mutton 取出键food对应的值。
  • Redis批量获取与设置值

    mset(*args, **kwargs)
    批量设置值
    如:r.mget({'k1': 'v1', 'k2': 'v2'})
    r.mset(k1="v1", k2="v2") # 这里k1 和k2 不能带引号 一次设置对个键值对
    print(r.mget("k1", "k2"))   # 一次取出多个键对应的值
    print(r.mget("k1"))
    mget(keys, *args)
    

批量获取
如:

print(r.mget('k1', 'k2'))
print(r.mget(['k1', 'k2']))print(r.mget("fruit", "fruit1", "fruit2", "k1", "k2"))  
#将目前redis缓存中的键对应的值批量取出来
  • python操作redis用户登录

    #-*- coding:utf-8 -*-
    import redis
    class Redis_login():    
          def __init__(self,user,pwd):        
                r.mset(guoyan='123',lixiang='1234',shengli='12345')    
          def login(self):        
                 ls = []        
                 for key in r.keys():            
                         ls.append(key.decode('utf-8'))        
                  if user not in ls:            
                         print('用户名错误请重新输入')        
                  elif r.get(user).decode('utf-8') == pwd:            
                           print('登录成功!!!')        
                  else:            
                           red.not_login()    
            def not_login(self):        
                   print('输入错误请重新输入') 
    
      if __name__ == '__main__':   
      pool = redis.ConnectionPool(host='127.0.0.1', port=6379)    
      r = redis.Redis(connection_pool=pool)    
      while True:
              user = raw_input('请输入用户名\n')        
              pwd = raw_input('请输入密码\n')        
              red = Redis_login(user,pwd)       
              red.login()
    

2.利用Python操作mongodb

MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是可以应用于各种规模的企业、各个行业以及各类应用程序的开源数据库。作为一个适用于敏捷开发的数据库,MongoDB的数据模式可以随着应用程序的发展而灵活地更新。与此同时,它也为开发人员 提供了传统数据库的功能:二级索引,完整的查询系统以及严格一致性等等。 MongoDB能够使企业更加具有敏捷性和可扩展性,各种规模的企业都可以通过使用MongoDB来创建新的应用,提高与客户之间的工作效率,加快产品上市时间,以及降低企业成本。MongoDB是专为可扩展性,高性能和高可用性而设计的数据库。它可以从单服务器部署扩展到大型、复杂的多数据中心架构。利用内存计算的优势,MongoDB能够提供高性能的数据读写操作。 MongoDB的本地复制和自动故障转移功能使您的应用程序具有企业级的可靠性和操作灵活性。

  • MongoDB的安装windows

windows下的安装:MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制包下载地址:https://www.mongodb.com/download-center#community

  • MongoDB的安装cnetos7

1、centos7下的安装:
配置MongoDB的yum源
vim /etc/yum.repos.d/mongodb-org-3.4.repo
#添加以下内容:

[mongodb-org-3.4]  
name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/  
gpgcheck=1  
enabled=1  gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc 
#这里可以修改 gpgcheck=0, 省去gpg验证

[root@localhost ~]# yum makecache       

安装MongoDB

yum -y install mongodb-org

查看mongo安装位置 :

whereis mongod

启动MongoDB

systemctl start mongod.service

停止mongodb :

systemctl stop mongod.service

查到mongodb的状态:

systemctl status mongod.service

关闭防火墙才能外网访问

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall

修改mongodb远程访问
把bindIP改为0.0.0.0 并重启mongodb

  • MongoDB的安装docker

接下来介绍docker安装,这个是比较简单的
1、docker pull mongo 默认是最新的版本
2、docker run --name mongo-master -p 27017:27017 -v /etc/localtime:/etc/localtime:ro -v /home/mongo/db:/data/db -d mongo

  • mongodb创建用户管理员

创建用户管理员
首先进入mongo容器
docker exec -it mongo-master bash
创建用户管理员(此语法适用于mongo v3.x)
#进入mongo数据库
mongo
#首先切换到admin数据库下
use admin;
#创建一个用户admin, 密码是Hello123
#此用户即为管理员
#user: 用户名
#pwd: 密码明文
#role: 用户角色 db: 该用户将创建到哪个数据库中
db.createUser({
user: ‘admin’,
pwd: ‘Hello123’,
roles: [{role: ‘userAdminAnyDatabase’, db: ‘admin’}]});
#测试下是否正确
db.auth(“admin”, “Hello123”);
1 # 返回1表示正确
#退出
exit;

  • Python操作mongoDB

开始使用

pip install pymongo

我们看出一下python利用mongodb增删改查操作

from pymongo import MongoClient
conn = MongoClient('192.168.1.35', 27017)
db = conn['xuegod_db']  #连接xuegod_db数据库,没有则自动创建
my_set = db['xuegod_set'] #使用xuegod_set集合,没有则自动创建

#增加一条数据

my_set.insert_one({"name":"if","age":20})
result=my_set.find_one({"name":"if"})
print(result)

#更新一条数据

my_set.update_one({"name":"if"},{"$set":{"age":18}})result2=my_set.find_one({"name":"if"})
print(result2)

#删除一条数据

my_set.delete_many({"name":"if"})  #delete_one删除一条
result3=my_set.find_one({"name":"if"})
print(result3)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值