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)