mongodb
安装
docker部署
docker run -itd --name mongo_test -p 27017:27017 mongo --auth
docker exec -it mongo_test mongosh admin
连接
db.auth(用户名, 密码)
创建
用户
创建用户, 名为 admin, 密码为 123456
db.createUser({ user:'admin', pwd:'123456', roles:[{ role:'userAdminAnyDatabase', db:'admin'}, "readWriteAnyDatabase"]})
创建数据库
use 数据库
创建 test 数据库, 这里暂不会显示, 因为其中还未插入数据
创建集合
db.createCollection("集合")
创建 stu 集合
增加
插入数据
db.[集合].insert(JSON数据1, JSON数据2...)
向stu集合插入两条数据
db.stu.insert([{name:"Ling", age:20}, {name:"Wang", age:22}])
查询
全部查询
db.[集合].find()
格式化显示集合内所有文档
db.[集合].find().pretty()
条件查询
db.[集合].find({key:value}).pretty()
查询 stu 集合中 name 为 Ling 文档
db.stu.find({name:"Ling"}).pretty()
查询年龄大于等于 21 文档
db.stu.find({age:{$gte:21}}).pretty()
操作 | 格式 |
---|---|
等于 | {key:value} |
小于 | {key:{$lt:value}} |
小于或等于 | {key:{$lte:value}} |
大于 | {key:{$gt:value}} |
大于或等于 | {key:{$gte:value}} |
不等于 | {key:{$ne:value}} |
修改
db.[集合].update({key1:value}, {$set:{key2:new_value}})
将 name 为 Ling 文档中 age 值改为 30
db.stu.update({name:"Ling"}, {$set:{age:30}})
删除
db.[集合].remove({key:value})
- 删除 name=Ling 文档
db.stu.remove({name:"Ling"})
使用
python
- 连接
pymongo.MongoClient("mongodb://用户名:密码@IP:端口/")
import pymongo
client = pymongo.MongoClient("mongodb://admin:123456@192.168.1.36:27017/")
dbs = client.list_database_names()
# ['admin', 'config', 'local', 'test']
print(dbs)
- 获取集合
# 获取test数据库中所有集合
collects = client['test'].list_collection_names()
# ['stu']
print(collects)
- 获取文档
# 获取test数据库stu集合
collect = client['test']['stu']
# 遍历集合输出文档
for i in collect.find():
print(i)
- 按条件获取
集合.find(key:value)
collect = client['test']['stu']
# 获取 name 为 Ling 的人员信息
data = collect.find({"name":"Ling"})[0]
# {'_id': ObjectId('61deb1b9e67fb54f984ccf8f'), 'name': 'Ling', 'age': 30.0}
print(data)
- 插入文档
单条插入
insert_one(JSON数据)
多条插入
insert_many(JSON数据1, JSON数据2...)
...
collect = client['test']['stu']
collect.insert_one({"name":"new_name", "age":19})
collect.insert_many([
{"name":"new_name2", "age", 20},
{"name":"new_name3", "age":19},
{"name":"new_name4", "age":19}
])
for i in collect.find():
print(i)
redis
命令
建立键
SET key redis
删除键
DEL key
检查key存在
EXISTS key
key设置过期时间
EXPIRE key seconds
返回key剩余生存时间
TTL key
安全操作
设置密码
CONFIG set requirepass "密码"
查看密码
CONFIG get requirepass
docker部署
允许远程访问
- 新建redis.conf
# Turn off protection mode
protected-mode no
# password
requirepass 123456
- 拉取容器
docker run -itd --name redis-test -p 6379:6379 -v $PWD/redis.conf:/etc/redis/redis.conf redis
docker run -itd -p 6379:6379 -v $PWD/redis.conf:/etc/redis/redis.conf --name redis-server redis
连接
docker exec -it redis-test redis-cli