Linux操作系统中MongoDB
1、什么是MongoDB
1、非关系型数据库
NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,特别是大数据应用难题。
2、非关系型数据库分类
键值(Key-Value)存储数据库
类似于HashMap的方式,例如redis
列存储数据库
以列为概念的,用于处理大数据量的数据,例如HBase
文档型数据库
是应用比较广泛的,以文档形式处理数据的,文档不是硬盘上直接对应的文件,是个概念,例如MongoDB
图形(Graph)数据库
Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。
3、MongoDB?bson格式什么样?
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
JSON的BSON格式是一种二进制表示的数据交换格式,它是“Binary JSON”的缩写。
2、MongoDB的优势
-
简单性,应用起来比较容易,易上手
-
扩展性,指的是mango本身的拓展,比如说可以做分片模式集群等等
-
高性能,在Wiretiger存储引擎的加持下,数据的读写可以做到更大的吞吐量
-
高可用,自身出现故障的情况很少,也可以通过集群的方式再提供高可用性,还支持故障转移
-
存文件,mongo天然支持文件存储,以桶的形式,用的对象是GridFS,文件会被切割成多个16M大小存储
3、MongoDB应用场景
它的应用场景非常广泛,存储数据、读写网站数据、文件存储、日志存储、缓存等。
从数据角度说,mongo关注是未来数据量。
从需求角度说,mongo关注是未来的拓展和维护。
4、术语
mongo | mysql |
---|---|
database 数据库 | database 数据库 |
collection 集合 | table 表 |
field 字段 | column 列 |
document 文件 | row 行 |
primary key 主键 | primary key 主键 |
index 索引 | index 索引 |
multi-document transactions 事务 | transactions 事务 |
mongo从5版本对事务的支持更好,以后工作用的一定是5版本及以上的。
我们学习用4版本,是因为很多电脑安装不了5版本,受硬件影响。4版本和5版本在操作上没有什么大区别,学习不影响。
5、操作
1、安装MongoDB
基于docker的安装,版本号4.4.18
1、查询镜像文件【不操作】
docker search mongo
2、拉取镜像文件
docker pull mongo:4.4.18
3、创建数据挂载目录
mkdir -p /usr/local/docker/mongodb/data
cd /usr/local/docker/mongodb
chmod 777 data
4、启动容器
docker run -d \
--name mongodb \
--privileged \
-p 27017:27017 \
-v /usr/local/docker/mongodb/data:/data/db \
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=123456 \
mongo:4.4.18 mongod --auth
--privileged:以真正的有权限方式启动
MONGO_INITDB_ROOT_USERNAME:设置账户
MONGO_INITDB_ROOT_PASSWORD:设置密码
2、验证安装成功
1、命令及说明
# 1.进入容器 docker exec -it mongodb /bin/bash # 2.查看版本 mongo --version # 3.以root用户登录mongo,-p是密码,--port是端口号,--authenticationDatabase是验证权限的数据库 mongo --port 27017 -u "root" -p "123456" --authenticationDatabase "admin" # 4.展示所有的数据库 show dbs # 5.切换到dz14b数据库 use dz14b # 6.创建一个用户,用户名是user01,密码是123456,角色是读写角色,作用在dz14b数据库上 db.createUser({user:"user01", pwd:"123456",roles: [{role:"readWrite", db:"dz14b"}]}) # 7.查看所有的用户数据 show users # 8.退出mongodb数据库 exit # 9.退出mongodb容器 exit # 10.再次进入容器,以mongo命令进入,进入到dz14b数据库中 docker exec -it mongodb mongo dz14b # 11.查看当前在那个数据库 db # 12.查看数据库,发现没有其他数据库,我们已经再dz14b了,所以查询不到其他数据库 show dbs # 13.授权 db.auth("user01", "123456") # 14.查看数据库,发现没有,授权影响不到用户的作用范围 show dbs # 15.因为没有权限报错了 show users # 16.向dz(dz自定义的名字)集合插入了一个文档,数据是inser方法的参数。对照sql理解:向dz表插入一条记录 db.dz.insert({name:"zhangsan"}) # 17.查询dz集合下所有的数据 db.dz.find()
【第1,2,3步骤】
【第4-9步骤】
【第10-17步骤】
3、删除用户【不操作】
1、命令及说明
# 进入docker容器
docker exec -it mongodb /bin/bash
# 以root用户登录mongo,-p是密码,--port是端口号,--authenticationDatabase是验证权限的数据库
mongo --port 27017 -u "root" -p "123456" --authenticationDatabase "admin"
# 切换到dz12b数据库
use dz12b
# 查看所有的用户数据
show users
# 切换到admin数据库
user admin
# 授权
db.auth("root", "123456")
# 删除用户,用户信息再system.users下,remove是一个命令
db.system.users.remove({user:"user01"})
# 重新进入mongo,验证删除成功
exit
mongo --port 27017 -u "root" -p "123456" --authenticationDatabase "admin"
use dz7b
show users
4、Navicat连接
5、insert
db.dz.insert({name:"lisi", age:20}); db.dz.save({name:"wangwu", age:25}); db.dz.save({name:"zhangsan", age:25}); db.dz.insert({_id:ObjectId("63e4c8bdd20e7cc75a36a700"),name:"zhangsan1",age:20}) db.dz.save({_id:ObjectId("63e4c8bdd20e7cc75a36a700"),name:"zhangsan1",age:20})
insert和save的区别:
如果设置了id字段,id不重复二者没有区别,都是新增一条数据,如果id重复,insert会报错,save执行修改操作。
【执行insert语句同时 创建集合“表”】
6、find
操作符 | 格式 | 实例 | 与 RDBMS where 语句比较 |
---|---|---|---|
等于(=) | {<key> : {<value>}} | db.test.find( {price : 24} ) | where price = 24 |
大于(>) | {<key> : {$gt : <value>}} | db.test.find( {price : {$gt : 24}} ) | where price > 24 |
小于(<) | {<key> : {$lt : <value>}} | db.test.find( {price : {$lt : 24}} ) | where price < 24 |
大于等于(>=) | {<key> : {$gte : <value>}} | db.test.find( {price : {$gte : 24}} ) | where price >= 24 |
小于等于(<=) | {<key> : {$lte : <value>}} | db.test.find( {price : {$lte : 24}} ) | where price <= 24 |
不等于(!=) | {<key> : {$ne : <value>}} | db.test.find( {price : {$ne : 24}} ) | where price != 24 |
与(and) | {key01 : value01, key02 : value02, ...} | db.test.find( {name : "《MongoDB 入门教程》", price : 24} ) | where name = "《MongoDB 入门教程》" and price = 24 |
或(or) | {$or : [{key01 : value01}, {key02 : value02}, ...]} | db.test.find( {$or:[{name : "《MongoDB 入门教程》"},{price : 24}]} ) | where name = "《MongoDB 入门教程》" or price = 24 |
db.dz.find({age : 25} ) db.dz.find({age : {$gt : 20}}) db.dz.find({age:{$gt:20},name:'zhangsan'})
7、delete
db.dz.deleteOne({age:20})
db.dz.deleteMany({age:20})
deleteOne是删除按照条件查询到的第一条数据
deleteMany是删除所有符合条件的记录
8、update
db.dz.updateOne(
{age:25},
{$set:{age:20}}
)db.dz.updateMany(
{age:25},
{$set:{age:20}}
)
updateOne是修改按照条件查询到的第一条数据
updateMany是修改所有符合条件的记录
9、其他操作【了解】
# 查看所有数据库
show dbs
# 应用到指定数据库
use databasename
# 查看数据库下的集合
show collections
# 创建集合
db.createCollection("test_collection")
# 删除集合,test_collection是集合的名字
db.test_collection.drop()
6、SpringBoot整合
1.添加依赖
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.13</version></parent>
<properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>2.6.13</spring-boot.version><jwt.version>0.7.0</jwt.version><fastjson.version>1.2.60</fastjson.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>compile</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--json--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson.version}</version><scope>compile</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency></dependencies>
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><classifier>exec</classifier></configuration></plugin></plugins></build>
2.添加配置
spring:data:mongodb:username: user01password: '123456'port: 27017host: 192.168.1.101database: dz14b
mongodb配置有两种方式,如果第一种不生效,可以用第二种尝试一下
spring:data:mongodb:uri: mongodb://user01:123456@192.168.1.101:27017/dz12b
3.编写Entry
import lombok.Data;
import org.springframework.data.annotation.Id;
@Data
public class User {
@Idprivate String id;private String name;private String password;
}
4.编写DAO
import org.jsoft.demo.vo.User;
import java.util.List;
public interface IUserDao {
/*** 新增** @param user 目标对象*/void insert(User user);
/*** 删除** @param id 对象主键*/void delete(String id);
/*** 修改** @param user 目标对象*/void update(User user);
/*** 通过主键查询** @param id 主键* @return user对象*/User findById(String id);
/*** 查询** @param user 条件对象* @return user集合*/List<User> query(User user);
}
5.编写DAOImpl
MongoTemplate常用方法:
mongoTemplate.insert(user); //添加user对象mongoTemplate.findById(id, User.class); //根据主键id,查询单个user对象。mongoTemplate.remove(user); //删除指定user对象mongoTemplate.remove(条件对象Query, User.class); // 删除符合条件的user对象mongoTemplate.updateMulti(条件对象query, 修改对象update, User.class); //修改符合条件的user对象mongoTemplate.find(条件对象query, User.class); //查询符合条件的user对象
条件对象Query常用方法:
#将构建好的查询条件添加到查询对象中 query.addCriteria(Criteria.where("_id").is(id));
Criteria常用方法:
#用于定义查询条件的接口,它提供了一系列的方法来构建复杂的查询条件。 Criteria.where("_id").is(id);
修改对象Update常用方法:
update.set("password", user.getPassword());
测试代码:
import org.jsoft.demo.dao.IUserDao;
import org.jsoft.demo.vo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public class UserDaoImpl implements IUserDao {
@Autowiredprivate MongoTemplate mongoTemplate;
@Overridepublic void insert(User user) {mongoTemplate.insert(user);}
@Overridepublic User findById(String id) {return mongoTemplate.findById(id, User.class);}
// @Overridepublic void delete1(String id) {User user = findById(id);if (user != null) {mongoTemplate.remove(user);} else {System.out.println("没有找到要删除的数据!");}}
@Overridepublic void delete(String id) {Query query = new Query();query.addCriteria(Criteria.where("_id").is(id));mongoTemplate.remove(query, User.class);}
@Overridepublic void update(User user) {Query query = new Query();query.addCriteria(Criteria.where("_id").is(user.getId()));Update update = new Update();update.set("name", user.getName());update.set("password", user.getPassword());mongoTemplate.updateMulti(query, update, User.class);}
@Overridepublic List<User> query(User user) {Query query = new Query();if(user.getId() != null){query.addCriteria(Criteria.where("_id").is(user.getId()));}if(user.getName() != null){query.addCriteria(Criteria.where("name").is(user.getName()));}if(user.getPassword() != null){query.addCriteria(Criteria.where("password").is(user.getPassword()));}return mongoTemplate.find(query, User.class);}
}
6.编写测试类Test
import lombok.extern.slf4j.Slf4j;
import org.jsoft.demo.dao.IUserDao;
import org.jsoft.demo.vo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@Slf4j
@SpringBootTest(classes = DemoHelloworldApplication.class)
@SuppressWarnings("all")
public class MongoDbTest {
@Autowiredprivate IUserDao userDao;
@Testpublic void testInsert() {User user = new User();user.setPassword("123");user.setName("zhangsan");userDao.insert(user);}
@Testpublic void testFindById() {User byId = userDao.findById("661794efd775ee4bd7a6d069");System.out.println(byId);}
@Testpublic void testDelete() {userDao.delete("6617970547fbc57ef66a962f");}
@Testpublic void testUpdate() {User user = new User();user.setId("661797ee479a0c02f0dd9212");user.setPassword("123456");user.setName("lisi");userDao.update(user);}
@Testpublic void testQuery() {User user = new User();
// user.setId("661797ee479a0c02f0dd9212");user.setPassword("123");
// user.setName("lisi");System.out.println(userDao.query(user));}
}
7.编写启动类
package com.jr;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringBootMain {
public static void main(String[] args) {SpringApplication.run(SpringBootMain.class);}
}
相关文章:
Linux操作系统中MongoDB
1、什么是MongoDB 1、非关系型数据库 NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问…...
2、.Net 前端框架:OpenAuth.Net - .Net宣传系列文章
OpenAuth.Net 是一个开源的身份验证框架,由开发者 Yubaolee 创建,它旨在简化 Web 应用和服务的安全授权过程。这个框架以其强大的功能和易用性,为开发人员提供了一种高效的方式来处理用户认证和授权问题。 OpenAuth.Net 的关键特性包括&#…...
unreal engine5制作动作类游戏时,我们使用刀剑等武器攻击怪物或敌方单位时,发现攻击特效、伤害等没有触发
UE5系列文章目录 文章目录 UE5系列文章目录前言一、问题分析二、解决方法1. 添加项目设置碰撞检测通道2.玩家角色碰撞设置3.怪物角色碰撞预设 最终效果 前言 在使用unreal engine5制作动作类游戏时,我们使用刀剑等武器攻击怪物或敌方单位时,发现攻击特效…...
数据权限的设计与实现系列11——前端筛选器组件Everright-filter集成功能完善2
筛选条件数据类型完善 文本类 筛选器组件给了一个文本类操作的范例,如下: Text: [{label: 等于,en_label: Equal,style: noop},{label: 等于其中之一,en_label: Equal to one of,value: one_of,style: tags},{label: 不等于,en_label: Not equal,v…...
C++ 游戏开发
C游戏开发 C 是一种高效、灵活且功能强大的编程语言,因其性能和控制能力而在游戏开发中被广泛应用。许多著名的游戏引擎,如 Unreal Engine、CryEngine 和 Godot 等,都依赖于 C 进行核心开发。本文将详细介绍 C 在游戏开发中的应用࿰…...
【历年CSP-S复赛第一题】暴力解法与正解合集(2019-2022)
P5657 [CSP-S2019] 格雷码P7076 [CSP-S2020] 动物园P7913 [CSP-S 2021] 廊桥分配P8817 [CSP-S 2022] 假期计划 P5657 [CSP-S2019] 格雷码 暴力50分 #include<bits/stdc.h> #define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0) #define int long long #d…...
基于PyQt5和SQLite的数据库操作程序
基于PyQt5和SQLite的数据库操作程序:功能解析 在现代办公和数据处理中,数据库操作是不可或缺的一部分。然而,传统的数据库管理工具往往界面复杂,操作繁琐,对于非专业人士来说存在一定的学习曲线。为了解决这个问题,我们开发了一款基于PyQt5和SQLite的数据库操作程序。该…...
在Ubuntu 20.04中安装CARLA
0. 引言 CARLA (Car Learning to Act) 是一款开源自动驾驶模拟器,其支持自动驾驶系统全管线的开发、训练和验证(Development, Training, and Validation of autonomous driving systems)。Carla提供了丰富的数字资产,例如城市布局…...
【高中数学/对数/导数】曲线y=ln|x|过坐标原点的两切线方程为?
【问题】 曲线yln|x|过坐标原点的两切线方程为?(高考真题) 【出处】 《高考数学 函数与导数题型解题研究》P5第8题 中原教研工作室编著 【解答】 yln|x|的图线分两部分,y轴左边的部分是ylnx的镜像 所以知ylnx上切线过原点的…...
Qt CMake
使用 CMake 构建 CMake 是一款用于简化跨不同平台开发项目的构建流程的工具。 CMake 可自动生成构建系统,如 Makefile 和 Visual Studio 项目文件。 CMake 是一个第三方工具,有自己的文档。 本主题介绍如何在 Qt 5 中使用 CMake 3.1.0。 开始使用 CMak…...
制造企业各部门如何参与生产成本控制与管理?
国内制造业的分量可不轻,从日常生活用品到高端工业设备,中国制造几乎涵盖了各个领域。 不过很多制造业企业在管理方面确实存在一些难题:成本控制不容易,产品质量并不稳定,生产周期也常常较长。 一、中国制造业生产管…...
FireRedTTS - 小红书最新开源AI语音克隆合成系统 免训练一键音频克隆 本地一键整合包下载
小红书技术团队FireRed最近推出了一款名为FireRedTTS的先进语音合成系统,该系统能够基于少量参考音频快速模仿任意音色和说话风格,实现独特的音频内容创造。 FireRedTTS 只需要给定文本和几秒钟参考音频,无需训练,就可模仿任意音色…...
活体检测标签之2.4G有源RFID--SI24R2F+
首先从客户对食品安全和可追溯性的关注切入,引出活体标签这个解决方案。接着分别阐述活体标签在动物养殖和植物产品方面的应用,强调其像 “身份证” 一样记录重要信息,让客户能够了解食品的来源和成长历程,从而放心食用。最后呼吁…...
Web3Auth 如何工作?
Web3Auth 用作钱包基础设施,为去中心化应用程序 (dApp) 和区块链钱包提供增强的灵活性和安全性。在本文档中,我们将探索 Web3Auth 的功能,展示它如何为每个用户和应用程序生成唯一的加密密钥提供程序。 高级架构 Web3Auth SDK 完全存在于用…...
问:SQL中join语法的差异?
在SQL中,JOIN语法用于结合来自两个或多个表的数据。不同类型的JOIN会基于不同的条件来合并表中的数据。以下是几种常见的JOIN及其差异: 假设我们有两个表:employees 和 departments。 employees 表: employee_idnamedepartment_id1Alice10…...
计算机网络各层有哪些协议?计算机网络协议解析:从拟定到实现,全面了解各层协议的作用与区别
在数字化时代,计算机网络无处不在,已经成为不可或缺的一部分。为了让不同设备能够有效地进行通信,网络协议作为一种约定和规则,确保了数据在网络中的可靠传输。今天,我们将深入探讨计算机网络的各层协议,详…...
解决方案:机器学习中,基学习器 跟 弱学习器,有什么区别
文章目录 一、现象二、解决方案 一、现象 在工作中,在机器学习中,有时候会看到基学习器 跟 弱学习器,会容易混淆,所以整理一下 二、解决方案 在机器学习中,“基学习器”(Base Learner)和“弱…...
【Python】ftfy 使用指南:修复 Unicode 编码问题
ftfy(fixes text for you)是一个专为修复各种文本编码错误而设计的 Python 工具。它的主要目标是将损坏的 Unicode 文本恢复为正确的 Unicode 格式。ftfy 并非用于处理非 Unicode 编码,而是旨在修复因为编码不一致、解码错误或混合编码导致的…...
第9课-C++String功能的探索
1:C 语言中的字符串 vs C string 类 1.1 C 语言中的字符串 在 C 语言中,字符串本质上是以 \0 结尾的字符数组。C 标准库为此提供了 str 系列函数,如 strlen()、strcpy() 和 strcat() 等。虽然这些函数可以操作字符串,但它们的操…...
基于Hive和Hadoop的保险分析系统
本项目是一个基于大数据技术的保险分析系统,旨在为用户提供全面的汽车保险信息和深入的保险价格分析。系统采用 Hadoop 平台进行大规模数据存储和处理,利用 MapReduce 进行数据分析和处理,通过 Sqoop 实现数据的导入导出,以 Spark…...
国庆节快乐前端(HTML+CSS+JavaScript+BootStrap.min.css)
一、效果展示 二、制作缘由 最近,到了国庆节,自己呆在学校当守校人,太无聊了,顺便做一个小demo帮祖国目前庆生!!! 三、项目目录结构 四、准备工作 (1)新建好对应的文件目录 为了方便ÿ…...
【重学 MySQL】四十九、阿里 MySQL 命名规范及 MySQL8 DDL 的原子化
【重学 MySQL】四十九、阿里 MySQL 命名规范及 MySQL8 DDL 的原子化 阿里 MySQL 命名规范MySQL8 DDL的原子化 阿里 MySQL 命名规范 【强制】表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字。数据库字段名的修改代价…...
PyTorch源码系列(一)——Optimizer源码详解
目录 1. Optimizer类2. Optimizer概览3. 源码解析3.1 构造方法3.1.1 全局设置情形3.1.2 局部设置情形3.1.3 覆盖测试3.1.4 逐行讲解 3.2 add_param_group3.3 step3.4 zero_grad3.5 self.state3.6 state_dict3.7 load_state_dict 4. SGD Optimizer5. 极简版Optimizer源码6. 自定…...
Java - LeetCode面试经典150题(三)
区间 228. 汇总区间 题目 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中…...
基于SpringBoot+Vue+MySQL的民宿预订平台
系统展示 用户前台界面 管理员后台界面 商家后台界面 系统背景 随着旅游业的蓬勃发展,民宿作为一种独特的住宿方式,受到了越来越多游客的青睐。然而,传统的民宿预定方式往往存在信息不对称、效率低下等问题,难以满足游客的个性化需…...
Hadoop krb5.conf 配置详解
krb5.conf文件是Kerberos认证系统中的一个关键配置文件,它包含了Kerberos的配置信息,如KDC(Key Distribution Centers)和Kerberos相关域的管理员服务器位置、当前域和Kerberos应用的默认设置、以及主机名与Kerberos域的映射等。以…...
工程师 - DNS请求过程
DNS(Domain Name System,域名系统)是互联网的重要基础设施之一,其主要功能是将人们容易记忆的域名(例如 www.example.com)转换为计算机能识别的IP地址(例如 192.0.2.1),类…...
Solidity智能合约中的事件和日志
1. Solidity 中的事件和日志概述 1.1 什么是事件? 在 Solidity 中,事件(Event)是一种允许智能合约与外部世界进行通信的机制。通过触发事件,可以记录合约执行中的关键操作,并将这些操作发送到链上。事件的…...
第四十一篇-Docker安装Neo4j
创建目录 mkdir /opt/neo4j-data创建 docker run \ -d --name neo4j \ -p 7474:7474 -p 7687:7687 \ -v /opt/neo4j-data/data:/data \ -v /opt/neo4j-data/logs:/logs \ -v /opt/neo4j-data//conf:/var/lib/neo4j/conf \ -v /opt/neo4j-data/plugins:/plugins \ --env NEO4J…...
数电基础(组合逻辑电路+Proteus)
1.组合逻辑电路 1.1组合逻辑电路的分析 1.1.1组合逻辑电路的定义 组合逻辑电路的定义 (1)对于一个逻辑电路,其输出状态在任何时刻只取决于同一时刻的输入状态,而与电路的原来状态无关,这种电路被定义为组合逻辑电路…...
加强普法网站建设的通知/谷歌官网注册入口
文章目录继承include宏Code继承 作用 可以把一些公用的代码放在模板中,避免每个html写相同的代码 语法 模板定义一些接口,让每个html实现自己的特定功能 {% block block_name %} 模板内容 {% endblock %}{% extends "base.html" %}{% block b…...
wordpress支持gif/win7优化设置
运行完下面的再回来: windows--》myeclipse--》subscription ok了输入名字和序列号。。^^..可能以后还会出现啊。。小心,此工程不删,拿来即用。^ 。 粘贴:运行 import java.io.BufferedReader;import java.io.IOException;impor…...
自己做网站服务器/网络广告的形式有哪些
图解TCP的3次握手建立连接,4次握手释放连接 建立连接TCP是面向连接的协议。运输连接是用来传送TCP报文的。TCP传输连接的建立和释放是每一次面向连接的通信中必不可少的过程。因此,传输连接就有三个阶段,即:连接建立、数据传送和连…...
网站上的公告怎么做参考文献/百度的相关搜索
分清不同的感冒用不同的药。细菌型感冒:需要服用抗生素,如青霉素类和头孢类。病毒性感冒:可以服用抗病毒冲剂、小柴胡、板兰根等。另外,根据感冒不同的症状选用不同的感冒药:发烧、头痛等为主,建议服用日夜…...
辽阳企业网站建设/北京口碑最好的教育机构
WIN7上是基于FASTCGI运行的PHP,今天要测试一个ZEND加密过的PHP程序,所以安装了ZendOptimizer-3.3.3,但怎么都失败,网上搜索了一把,发现是FASTCGI的原因,说WIN7上用ISAPI执行PHP就OK了,按照不用F…...