要使用我们的私有registry, 首先需要把这个registry运行起来。...这里首先看看如何用docker push 把image存储到私有仓库中,在docker push的时候,需要用到image的tag, 而image的tag设定是有规范要求的,在man docker tag...因为一个registry可能通过ip, url 访问到,所以在docker pull的时候,只需要指定其中一个可以访问到的方式就行,没有像docker push时候那样严格的要求,在上面的例子中,192.168.0.110...除了docker push, docker pull, 我们用的最多可能是docker search , 那么怎么search 私有registry呢?...push, pull, search ,还有一个常用的需求就是从私有仓库删除不需要的image.
数据的流动是系统设计的一个重要考虑因素,数据的流动发生在客户单与服务端之间。客户端系统:需要获取数据的一方。服务端系统:数据的提供方。...这两种方式有各自的特点和适用场景。Pull(拉取)实时性通常都是定时拉取数据的,这个定时的间隔时间就是实时性的偏差因素之一。...普通的系统一般也不会做限流,所以想拉就拉,就是平时开发一个查询接口的成本。适用场景实现性不高的小数据量获取场景。Push(推送)实时性服务端数据有变化,第一时间通知到客户端,时间间隔基本可以忽略。...稳定性服务端系统的性能开销更加可控些,推送的策略和频率可以由自身控制,甚至根据系统负载动态调整。服务端如果是重要的核心系统,通过这种自主可控的推送方式,可以更好的保护自己。...服务端系统的稳定性需要重点保障的场景。总结:“拉取” 就是将主动权控制在客户端手里。“推送” 就是将主动权控制在服务端手里。通常系统的演化方向是从简单到复杂,所以一般会选择 “先拉后推” 的设计演进。
一、运算符IN的使用 运算符 IN 允许我们在 WHERE 子句中过滤某个字段的多个值。...,valueN); 例如查询学生表中年龄是20、23、40岁的学生: SELECT name,age FROM student WHERE age IN (20,23,40); 二、运算符LIKE的使用...语法如下: SELECT column_name FROM table_name WHERE column_name LIKE '%value%'; TIP: LIKE 子句中的 % 类似于正则表达式中的...* ,用来匹配任意0个或多个字符; LIKE子句中的_匹配任意单个字符; LIKE子句中如果没有 % 和 _ ,就相当于运算符 = 的效果。...WHERE name LIKE '%军'; 例如查询学生表名字以张开头名字是两个字的学生: SELECT name FROM student WHERE name LIKE '张_'; 例如查询学生表名字包含晓字的学生
使用下面的关系区别这两个操作: git pull = git fetch + git merge git pull --rebase = git fetch + git rebase 现在来看看git...merge和git rebase的区别。...有以下两种方法: 1、git merge 用git pull命令把"origin"分支上的修改pull下来与本地提交合并(merge)成版本M,但这样会形成图中的菱形,让人很困惑。 ?...2、git rebase 创建一个新的提交R,R的文件内容和上面M的一样,但我们将E提交废除,当它不存在(图中用虚线表示)。...由于这种删除,小李不应该push其他的repository.rebase的好处是避免了菱形的产生,保持提交曲线为直线,让大家易于理解。 ?
LIKE模糊查询userName包含A字母的数据(%A%) SQL: SELECT * FROM UserInfo WHERE userName LIKE "%A%" MongoDB: db.UserInfo.find...({userName :/A/}) LIKE模糊查询userName以字母A开头的数据(A%) SQL: SELECT * FROM UserInfo WHERE userName LIKE "A%"...MongoDB: db.UserInfo.find({userName :/^A/})
最近的项目在执行 git pull/push 的时候,老是提示要输入账号和密码。输入正确之后,下次执行 git pull/push 的时候还需要重新输入账号密码。...这应该是我不知道啥时候使用了错误的账号和密码,解决方法很简单:先 cd 到根目录,执行以下命令: git config --global credential.helper store 执行之后会在 ....name = Deshun email = [email protected] [credential] helper = store 然后 cd 到项目目录,执行 git pull...输完这一次以后就不再需要,并且会在根目录生成一个 .git-credentials 文件 git pull Username for 'https://github.com': [email protected.../push 代码都不再需要输入账号密码了。
一般情况下,sql中使用col_name like 'ABC%‘的情况才能使用到col_name字段上的索引。那么如果是col_name like '%ABC%'的情况,能否使用索引呢?...答案是:可以使用索引,但是需要改写SQL并创建reverse函数索引。 具体如何实现?听专家为你揭晓。 一、col_name like '%ABC'时的优化方法 ?...二、col_name like '%ABC%'时的优化方法 ? 一般认为这种情况是不能使用索引的,但还是有一些优化方法可以使用。...SQL进行优化 情况1、先创建substr函数索引,再使用like ‘ABC%’。...'TAB%'; 情况2、先创建reverse+substr组合函数索引,再使用like reverse‘%ABC’。
stash 描述 官方解释:当您想记录工作目录和索引的当前状态,但又想返回一个干净的工作目录时,请使用git stash。该命令将保存本地修改,并恢复工作目录以匹配头部提交。...对于上面的场景,就可以再次修改重新提交,保持干净的 commit 记录。 以上说的是还未 push 的commit。...对于已经 push 的 commit,也可以使用该命令,不过再次 push 时,由于远程分支和本地分支有差异,需要强制推送git push -f来覆盖被 reset 的 commit。...先把起点c和终点e的 commitHash 记下来。 切到 master 分支,使用区间的cherry-pick。... ps = push pl = pull mer = merge --no-ff cp = cherry-pick 使用 # 等同于 git
以上说的时还未 push 的 commit,对于已经 push 的 commit,也可以使用该命令,不过再次 push 时,由于远程分支和本地分支有差异,需要强制推送 git push -f 来覆盖被...完成后看下最新的 log, b 已经应用到 master,作为最新的 commit 了,可以看到 commitHash 和之前不一样了,但是提交时间还是保留之前的。...复制多个以上是单个 commit 的复制,下面再来看看 cherry-pick 多个 commit 要如何操作一次转移多个提交:上面的命令将 commit1 和 commit2 两个提交应用到当前分支。...还是 v2.0 分支,现在需要把 c、d、e 都复制到 master 分支上,先把七点 c 和终点 e 的 commitHash 记下来。...使用刚刚同样的 revert 方法,会发现命令行报错了。
MongoDB 查询分析 MongoDB 查询分析可以确保我们所建立的索引是否有效,是查询语句性能分析的重要工具。 MongoDB 查询分析常用函数有:explain() 和 hint()。...接下来我们在 users 集合中创建 gender 和 user_name 的索引: >db.users.ensureIndex({gender:1,user_name:1}) 现在在查询语句中使用 explain...cursor:因为这个查询使用了索引,MongoDB 中索引存储在B树结构中,所以这是也使用了 BtreeCursor 类型的游标。如果没有使用索引,游标的类型是 BasicCursor。...indexBounds:当前查询具体使用的索引。 使用 hint() 虽然MongoDB查询优化器一般工作的很不错,但是也可以使用 hint 来强制 MongoDB 使用一个指定的索引。...:1,user_name:1}) 可以使用 explain() 函数来分析以上查询: >db.users.find({gender:"M"},{user_name:1,_id:0}).hint({gender
获取微博通过 pull 方式还是 push 方式 sns系统,微博系统都应用到了feed(每条微博或者sns里的新鲜事等我们称作feed)系统,不管是twitter.com或者国内的新浪微博,人人网等,...下面我们就微博的feed推拉(push,pull)模式做一下探讨,并提出新的时间分区拉模式。 ...试想,一个大量用户的微薄系统通过使用推模式,是不是会产生非常惊人的数据呢? 下面看下拉模式(pull) ? ...图五:拉模式(pull)-改进(时间分区拉模式) 拉模式的改进主要是在feeds的存储上,使用按照时间进行分区存储。分为最近时间段(比如最近一个小时),近期的,比较长时期等等。...一般情况下,经常在线的用户,频繁使用的客户端扫描操作,经常登录的用户,都会落在最近的feeds表区间,查询都是比较高效的。
stash 描述 官方解释:当您想记录工作目录和索引的当前状态,但又想返回一个干净的工作目录时,请使用git stash。该命令将保存本地修改,并恢复工作目录以匹配头部提交。...对于上面的场景,就可以再次修改重新提交,保持干净的 commit 记录。 以上说的是还未 push 的commit。...对于已经 push 的 commit,也可以使用该命令,不过再次 push 时,由于远程分支和本地分支有差异,需要强制推送git push -f来覆盖被 reset 的 commit。...先把起点c和终点e的 commitHash 记下来。 图片 切到 master 分支,使用区间的cherry-pick。...ps = push pl = pull mer = merge --no-ff cp = cherry-pick 使用 # 等同于 git
启动mongodb 启动前,先指定mongodb的data目录,如果没有就创建一个: 1 2 [root@test6 ~]# cd /usr/local/mongodb [root@test6 mongodb...启动成功后,可查看是否启动成功了,默认端口号是27017,当然在启动时也可以指定未使用的其它端口。 ?...name>:切换当前数据库,这和MS-SQL里面的意思一样 db.help():显示数据库操作命令,里面有很多的命令 db.foo.help():显示集合操作命令,同样有很多的命令,foo指的是当前数据库下...db.repairDatabase(); 8、查看当前使用的数据库 db.getName(); db; db和getName方法是一样的效果,都可以查询当前使用的数据库 9、显示当前db状态...; 这种写法调用了print函数,和直接写入"Hello World!"
下面会介绍命令,列出应用场景,手摸手教学使用,让同学们看完即学会。 stash 描述 官方解释:当您想记录工作目录和索引的当前状态,但又想返回一个干净的工作目录时,请使用git stash。...对于上面的场景,就可以再次修改重新提交,保持干净的 commit 记录。 以上说的是还未 push 的commit。...对于已经 push 的 commit,也可以使用该命令,不过再次 push 时,由于远程分支和本地分支有差异,需要强制推送git push -f来覆盖被 reset 的 commit。...先把起点c和终点e的 commitHash 记下来。 切到 master 分支,使用区间的cherry-pick。... ps = push pl = pull mer = merge --no-ff cp = cherry-pick 使用 # 等同于 git cherry-pick
使用git作为代码版本管理,早已是现在开发者必备的技能,但是大多数的开发者还是只会最基本的保存,拉去,推送,遇到一些commit管理的问题就束手无策,或者用一些不优雅的方式解决。...,由于情况紧急,又想不到好方法,还是人性的使用reset,然后再让同事把他的代码合一遍(同事听到想打人),于是你的技术形象在同事眼里一落千丈。...使用刚刚同样的revert方法,会发现命令行报错了。...因为使用revert后,v2.0分支的commit还是会保留再master分支的记录中,当你再次合并进去时,git判断有相同的commitHash,就忽略了相关的commit需改内容。...现在master的记录是这样的再次使用revert,之前被revert的修改内容就又回来了。
项目地址:https://github.com/YunaiV/ruoyi-vue-pro stash 描述 官方解释:当您想记录工作目录和索引的当前状态,但又想返回一个干净的工作目录时,请使用git stash...对于上面的场景,就可以再次修改重新提交,保持干净的 commit 记录。 以上说的是还未 push 的commit。...对于已经 push 的 commit,也可以使用该命令,不过再次 push 时,由于远程分支和本地分支有差异,需要强制推送git push -f来覆盖被 reset 的 commit。...先把起点c和终点e的 commitHash 记下来。 切到 master 分支,使用区间的cherry-pick。... ps = push pl = pull mer = merge --no-ff cp = cherry-pick 使用 # 等同于 git cherry-pick
1、Ajax建立的Server Push 只能由后台向前台推送数据,如果前台想发送数据给后台则需要单独再发一个请求。...图中的“27”就是剩余的CD数量,上文提及的“库存”实际是使用一个txt文本进行保存的。...因为代码是从网上一篇文章(可点击查看详情)中下载过来的,他使用了prototype中的ajax,这里就没有作修改。...可以使用onsubmit=”return false;”进行阻止,AjaxLongPolling.js的初始化函数中对form的submit再进行监听就可以了。 目录结构大致是这样子: ?...> 2、使用Iframe建立的Comet 这里针对IE和其它浏览器做了不同的处理,因为IE中的htmlfile添加的iframe,在浏览器当前窗口的底部将看不到加载进度(看上去比较平静),而其它浏览器则会出现一个
安装和java使用 二 安装 基于菜鸟 http://www.runoob.com/mongodb/mongodb-tutorial.html 1.官网安装,没什么好说的新手msi直接一路点下去,老手解压安装...例如,mongodb和spring-mongodb默认的认证机制不同。 1、mongodb的认证机制有2种:SCRAM-SHA-1和MONGODB-CR。...数据量和性能: 当物理内存够用的时候,redis>mongodb>mysql 当物理内存不够用的时候,redis和mongodb都会使用虚拟内存。...mongodb不一样,只要,业务上能保证,冷热数据的读写比,使得热数据在物理内存中,mmap的交换较少。mongodb还是能够保证性能。有人使用mongodb存储了上T的数据。...总结就是 虚拟内存不够是 选择mongodb和mysql 虚拟内存够是 选择mongodb和redis 但实际上,更多公司选择redis和mysql,这就是技术栈的问题,毕竟nosql的定义和开发设计没几个程序员了解
,默认情况下是double类型,如果要存整型,必须使用函数NumberInt(整型数字),否则取出来就有问题了 插入当前日期使用 new Date() 插入的数据没有指定 _id ,会自动生成主键值...MongoDB区分类型和大小写 MongoDB的文档不能有重复的键 文档的键是字符串。...概述 MongoDB索引使用的是B树数据结构,确切的说是 B-Tree,MySQL使用的是 B+Tree。 2....对于单个字段索引和排序规则,索引键的排序顺序(即升序或降序)并不重要,因为MongoDB可以在任何方向上遍历索引。 2.2 复合索引 MongoDB还支持多个字段的用户定义索引,即符合索引。...2.3 地理空间索引 为了支持对地理空间坐标数据的有效查询,MongoDB提供了两种特殊的索引:返回结果时使用平面几何的二维索引和返回结果时使用球面几何的二维球面索引。
旧版的mongo扩展已经不推荐使用了,在php7以上一般是安装和使用新版的mongodb扩展 ubuntu下 apt-get install php-mongodb 例如下面的代码进行了查询和插入集合操作...public $mongoManger=null; public $dbName='coms'; public function __construct(){ // 连接到mongodb...$this->mongoManger = new MongoDB\Driver\Manager("mongodb://127.0.0.1:27017"); } //添加文档模型...'.modelDraft':'model'; $query = new MongoDB\Driver\Query($filter, $options); $cursor...'.modelDraft':'model'; $query = new MongoDB\Driver\Query($filter, $options); $cursor