版本号

ASP.NET----内置对象----Resuest

允我心安 提交于 2019-11-30 18:51:50
Request对象可以获取包含用户的计算机、页面及浏览器的请求等相关信息。 Request对象的属性: ①Form----------返回有关表单变量的集合 ②QueryString----------返回附在url后面的参数内容 ③Url----------返回有关目前请求的Url信息 ④ApplicationPath----------返回被请求的页面位于Web应用程序的文件夹 ⑤FilePath----------与ApplicationPath相同,返回页面完整的Web地址路径,只是FilePath还包括页面的文件名,而ApplicationPath不包含文件名 ⑥PhysicalPath----------返回目前请求网页在服务器端的真实路径 ⑦Browser----------以Browser对象的形式返回有关访问的浏览器的相关信息 ⑧Cookies----------返回一个HttpCookieCollection对象集合,利用此属性可以查看访问者在以前访问站点时使用的Cookies ⑨UserLanguages----------返回客户端浏览器配置的语言种类 ⑩UserHostAddress----------返回远程客户端机器的主机IP地址 ⑪UserHostName----------返回远程客户端机器的主机名称 Request对象的方法: ①MapPath-

MYSQL MVCC实现及其机制(转)

半腔热情 提交于 2019-11-30 16:44:42
多版本并发控制 Multiversion Concurrency Control 大部分的MySQL的存储 引擎,比如InnoDB,Falcon,以及PBXT并不是简简单单的使用 行锁机制 。它们都使用了行锁结合一种提高并发的技术,被称为 MVCC(多版本并发控制 )。MVCC并不单单应用在MySQL中,其他的数据库如Oracle,PostgreSQL,以及其他数据库也使用这个技术。 MVCC避免了许多需要加锁的情形以及降低消耗。这取决于它实现的方式,它允许非阻塞读取,在写的操作的时候阻塞必要的记录。 MVCC保存了某一时刻数据的一个快照。 意思就是无论事物运行了多久,它们都能看到一致的数据。也就是说在相同的时间下,不同的事物看相同表的数据是不同的。 如果你从来没有这方面的经验,可能说这些有点令人困惑。但是在以后这个会很容易理解和熟悉的。 每个存储引擎实现MVCC方式都是不同的。有许多种包含了乐观(optimistic)和悲观(pessimistic)的并发控制。我们用简单的InnoDb的行为来举例说明MVCC工作方式。 InnoDB实现MVCC的方法是,它存储了每一行的两个额外的隐藏字段 ,这两个隐藏字段分别 记录了行的创建的时间和删除的时间 。在每个事件发生的时 候,每行存储版本号,而不是存储事件实际发生的时间。每次事物的开始这个版本号都会增加。自记录时间开始

Linux内核版本介绍与查询

末鹿安然 提交于 2019-11-30 14:32:09
Linux内核版本命名在不同时期有着不同的规范,在涉及到Linux版本问题时经常容易混淆,主线版本/稳定版/长期支持版本经常搞不清楚,本文主要记录下内核版本命名的规则以及如何查看Linux系统版本信息。 Linux内核(Linux kernel)简介 内核是操作系统的核心 ,其主要功能有:   1.响应中断,执行中断服务程序   2.管理多个进程,调度和分享处理器的时间   3.管理进程地址空间的内存管理   4.网络和进程间通信等系统服务程序 内核的活动范围:   1.运行于用户空间,执行用户进程   2.运行于内核空间,处于进程上下文,代表某个特定进程的执行   3.运行于内核空间,处于中断上下文,与任何进程无关,处理某个特定的中断 Linux内核版本号 第一种方式: Linux 的版本号分为两部分,即内核版本与发行版本。内核版本号由3个数字组成:A.B.C。各数字含义如下: A:内核主版本号。这是很少发生变化,只有当发生重大变化的代码和内核发生才会发生。在历史上曾改变两次的内核:1994年的1.0及1996年的2.0。 B:内核次版本号。是指一些重大修改的内核。偶数表示稳定版本;奇数表示开发中版本。 C:内核修订版本号。是指轻微修订的内核。这个数字当有安全补丁,bug修复,新的功能或驱动程序,内核便会有变化。 第二种方式: major.minor.patch-build

alembic的常用参数

久未见 提交于 2019-11-30 13:14:31
alembic的常用参数 命令和参数解释 1 .init:创建一个 alembic 仓库。 2 .revision:创建一个新的版本文件。 3 .--autogenerate:自动将当前的模型修改,生成迁移脚本。 4 .-m:本次迁移做了哪些修改,用户可以指定这个参数,方便回顾。 5 .upgrade:将指定版本的迁移文件映射到数据库中,会执行版本文件中的upgrade函数。如果有多个迁移脚本没有被映射到数据库中,那么会执行多个迁移脚本。 6 .head:代表最新的迁移脚本的版本号 7 .downgrade:会执行指定版本的迁移文件中的 downgrade 函数。 8 .heads:展示head指向的脚本文件版本号。 9 .history:列出所有的迁移版本及其信息。 10 .curren:展示当前数据库的版本号。 另外,当第一次执行upgrade的时候,就会给数据库中创建一个名叫 alembic_version 表,这个表只会有一条数据,记录当前数据库映射的是哪个版本的迁移文件。 经典错误 1 .FAILED: Target database is not up to date. 原因:主要是head和current不相同。current落后于heads的版本。 解决办法:将current移动到head上。 alembic upgrade head。 2 .FAILED: can

oracle导入提示“IMP-00010:不是有效的导出文件,头部验证失败”的解决方案

拈花ヽ惹草 提交于 2019-11-30 12:43:35
这是由于导出的dmp文件与导入的数据库的版本不同造成的 用Notepad++查看了dmp文件,在头部具修改成你将导入目标数据库的版本号 以下对应的版本号:   11g R2:V11.02.00   11g R1:V11.01.00   10g:V10.02.01 解决步骤: 1、查看dmp文件的版本号 2、查询导入oracle数据库的版本号 通过select * from v$version查看版本号,如下图 3、修改dmp文件的版本号 4、重新执行导入sql即可完成导入工作。 来源: https://www.cnblogs.com/guohu/p/11588639.html

Git 版本回退

五迷三道 提交于 2019-11-30 12:11:44
执行 git log查看日志,获取需要回退的版本号 按q退出log界面 执行 git reset --soft <版本号> ,如 git reset --soft 50047a3a2e6f98bdefddeefde27ec6d0fa1262bd ,重置至指定版本的提交,达到撤销提交的目的 git reset 命令分为两种: git reset --soft 与 git reset --hard ,区别是:    前者表示只是改变了HEAD的指向,本地代码不会变化,我们使用git status依然可以看到,同时也可以git commit提交。后者直接回改变本地源码,不仅仅指向变化了,代码也回到了那个版本时的代码。 执行 git push origin 分支名 --force ,强制提交当前版本号。 至此,撤销push提交完成。 来源: https://blog.csdn.net/Cagent/article/details/101357111

npm 使用记录

不问归期 提交于 2019-11-30 12:08:44
添加npm 源 1. 先安装nrm源管理器 npm install -g nrm --registry=http://.... 2. 使用nrm添加源 nrm add sourceName http://.... 3. 使用nrm切换源 nrm use sourceName 切换源成功,windows系统可到 C:\Users\userName\ 下查看 .npmrc和.nrmrc文件,查看当前源 发布npm包 注:发布npm官方包时不需要设置私有源,请确保当前源为npm官方源 1. 添加用户 npm adduser 2. 登录 npm login 3. 发布 这里需要注意,发包之前项目必须编译后 npm publish packageName 或者进入项目根目录 npm publish 4. 取消发布 npm unpublish 5. 已发布的包添加管理员 npm owner add userName 6. 查看包管理员 npm owner ls 7. 删除包管理员 npm owner rm userName 包版本规则 主版本号.次版本号.修补版本号 来源: https://www.cnblogs.com/miaoqiang9/p/11583884.html

软件版本定义语义说明(中文翻译) - 版本2.0.0

若如初见. 提交于 2019-11-30 12:08:16
摘要 给定版本号MAJOR.MINOR.PATCH,增加: 当您进行不兼容的API更改时的主要版本, MINOR版本,当您以向后兼容的方式添加功能时,以及 向后兼容的bug修复程序时的PATCH版本。 可以使用预发布和构建元数据的其他标签作为MAJOR.MINOR.PATCH格式的扩展名。 介绍 在软件管理的世界里,有一个可怕的地方,叫做“依赖地狱”。系统越大,集成到软件中的软件包越多,有一天,您越有可能在这种绝望中找到自己。 在具有许多依赖性的系统中,发布新的软件包版本可能很快成为噩梦。如果依赖性说明太严格,则存在版本锁定的危险(无法升级软件包而不必释放每个依赖性软件包的新版本)。如果对依赖关系的定义过于宽松,那么您将不可避免地被版本混杂所困扰(假设与更多合理版本的未来版本兼容)。当版本锁定和/或版本混杂使您无法轻松,安全地将项目向前移动时,依赖地狱就在您身边。 作为此问题的解决方案,我提出了一组简单的规则和要求,这些规则和要求规定了如何分配和递增版本号。这些规则基于但不一定限于在封闭式和开放源代码软件中都使用的预先存在的普遍惯例。为了使该系统正常工作,您首先需要声明一个公共API。这可能包含文档或由代码本身强制执行。无论如何,此API必须清晰准确。识别公共API后,您将以版本号的特定增量传达对它的更改。考虑XYZ的版本格式(Major.Minor.Patch)

CAS是什么?ABA问题的产生和解决方法

空扰寡人 提交于 2019-11-30 10:28:51
CAS是什么? 比较并交换(compare and swap)是一条CPU并发原语 功能 判断内存中某个位置的值是否为预期值,如果是则更改为新的值,这个过程是原子的,中间不予许中断,解决数据一致性问题。 底层原理 Unsafe类 是CAS的核心类,由于java无法直接访问底层系统,需要通过本地(native)方法访问,Unsafe相当于一个后门,该类可以直接操作特定的内存数据。 Unsafe类存在于sun.misc包中,其内部方法操作可以像C的指针一样直接操作内存,因为java中的CAS依赖于Unsafe类中的方法 注意 Unsafe中的所有方法都是native修饰的,就是说Unsafe中的方法都是直接操作系统底层资源执行任务 底层汇编 底层代码 // AtomicInteger类中方法:getAndIncrement,调用Unsafe类中的getAndAddInt public final int getAndIncrement(){ return unsafe.getAndAddInt(this,valueOffset,1); } //Unsafe类中 public final int getAndAddInt(Object var1, long var2, int var4) { int var5; do { var5 = this.getIntVolatile(var1,