什么是MongoDB MongoDB是一个文档数据库,提供好的性能,领先的非关系型数据库。采用BSON存储文档数据。2007年10月,MongoDB由10gen团队所发展。2009年2月首度推出。MongoDB用c++编写的。 优势: 面向文档的存储:以 JSON 格式的文档保存数据。 任何属性都可以建立索引。 复制以及高可扩展性。 自动分片。 丰富的查询功能。 快速的即时更新。 来自 MongoDB 的专业支持。 elasticsearch与MongoDB相同点与不同点 相同点: 1、都是以json格式管理数据的nosql数据库。 2、都支持CRUD操作。 3、都支持聚合和全文检索。 4、都支持分片和复制。 5、都支持阉割版的join操作。 6、都支持处理超大规模数据。 不同点: 1、es是java编写,通过RESTFul接口操作数据。mongodb是C++编写,通过driver操作数据。(es对java开发更有好,利于排查理解) 2、mongodb的分片有hash和range两种方式,es只有hash一种。 3、es是天生分布式,主副分片自动分配和复制,开箱即用。mongodb....
关于beanDefinition 的第一篇笔记 一共三篇 https://blog.csdn.net/java_lyvee/article/details/102633067 beanDefinition:org.springframework.beans.factory.config.BeanDefinition 常用子类:org.springframework.beans.factory.support.GenericBeanDefinition 描述每个bean的定义,dependsOn,scope,lazy,beanClassName等 启动过程: 扫描 parse------beanDefinition object ----map<"xxx",o> validate life-------遍历beanDefinitionMap,得到beanDefinition,实例化object 容器: 由spring各个组件组成 singletonObjects : ConcurrentHashMap 单例池,容器的一部分 beanDefinitionMap bean....
Docker 网络 Docker允许通过外部访问容器或容器互联的方式来提供网络服务。 安装Docker时,会自动安装一块Docker网卡称为docker0,用于Docker各容器及宿主机的网络通信,网段为172.0.0.1。 Docker网络中有三个核心概念:沙盒(Sandbox)、网络(Network)、端点(Endpoint)。 沙盒,提供了容器的虚拟网络栈,也即端口套接字、IP路由表、防火墙等内容。隔离容器网络与宿主机网络,形成了完全独立的容器网络环境。 网络,可以理解为Docker内部的虚拟子网,网络内的参与者相互可见并能够进行通讯。Docker的虚拟网络和宿主机网络是存在隔离关系的,其目的主要是形成容器间的安全通讯环境。 端点,位于容器或网络隔离墙之上的洞,主要目的是形成一个可以控制的突破封闭的网络环境的出入口。当容器的端点与网络的端点形成配对后,就如同在这两者之间搭建了桥梁,便能够进行数据传输了。 Docker的四种网络模式 Docker服务在启动的时候会创建三种网络,bridge、host和none,还有一种共享容器的模式container Bridge 桥接模式,主....
Docker生成镜像的两种方式 有时候从Docker镜像仓库中下载的镜像不能满足要求,我们可以基于一个基础镜像构建一个自己的镜像 两种方式: 更新镜像:使用docker commit命令 构建镜像:使用docker build命令,需要创建Dockerfile文件 更新镜像 先使用基础镜像创建一个容器,然后对容器内容进行更改,然后使用docker commit命令提交为一个新的镜像(以tomcat为例)。 1.根据基础镜像,创建容器 docker run --name mytomcat -p 80:8080 -d tomcat 2.修改容器内容 docker exec -it mytomcat /bin/bash cd webapps/ROOT rm -f index.jsp echo hello world > index.html exit 3.提交为新镜像 docker commit -m="描述消息" -a="作者" 容器ID或容器名 镜像名:TAG # 例: # docker commit -m="修改了首页" -a="华安" mytomcat huaan/to....
Docker安装 Docker 提供了两个版本:社区版 (CE) 和企业版 (EE)。 操作系统要求 以Centos7为例,且Docker 要求操作系统必须为64位,且centos内核版本为3.1及以上。 查看系统内核版本信息: uname -r 一、准备 卸载旧版本: yum remove docker docker-common docker-selinux docker-engine yum remove docker-ce 卸载后将保留 /var/lib/docker 的内容(镜像、容器、存储卷和网络等)。 rm -rf /var/lib/docker 1.安装依赖软件包 yum install -y yum-utils device-mapper-persistent-data lvm2 #安装前可查看device-mapper-persistent-data和lvm2是否已经安装 rpm -qa|grep device-mapper-persistent-data rpm -qa|grep lvm2 2.设置yum源 yum-config-manager --add....
1、ConcurrentLinkedQueue 在JDK1.5以后,java里面提供了很多的并发容器,这里我们用的是一个queue,队列。所谓队列其实就是一个容器,就是站成一对,不管票还是人都在里面排成一堆,队列有几种,有先进先出的,还有两端的队列,还有就是栈,先进后出,先加进去的后出来。这里用了一个concurrentlinkedqueue,并发的链表队列。线程里面调用了一个poll方法,意思是往外面拿一个数据,相当于在尾巴里面拿一个,如果没有拿到,他的返回值就是空,那么就中断线程。这里面没有加锁,同样有判断,但是不会出问题。完成卖票功能这种效率是比较高的。queue里面是不能装空值。这里虽然判断和操作是一起的,但是我们没有在判断里面有任何操作,大不了反过头来再拿一边,poll底层实现是cas,这里我们就不用加锁了。 private static Queue<Integer> tickets = new ConcurrentLinkedQueue<>(); static { for (int i = 0; i < 10000; i++) { ti....
redis 是什么? 是完全开源免费的,用c语言编写的,是一个单线程,高性能的(key/value)内存数据库,基于内存运行并支持持久化的nosql数据库 能干嘛? 主要是用来做缓存,但不仅仅只能做缓存,比如:redis的计数器生成分布式唯一主键,redis实现分布式锁,队列,会话缓存,点赞,统计网站访问量。 去哪下? 官网,也可以通过Linux yum直接下载安装 怎么玩? 1.安装 2.redis数据类型(api操作) 3.redis配置文件解析 4.redis的持久化 5.redis的事务 6.redis的发布订阅 7.java客户端操作(jedis) redis的安装 1.解压 2.make 如果make报错的话 大家就可以看一下是不是报没有gcc的错 如果是报没有gcc的错,那就要先安装一个gcc yum install gcc-c++ 安装好gcc之后执行一下make distclean 因为前面make的时候它执行了一些东西 要先把他清掉 3.make install 查看redis默认安装位置 /usr/local/bin redis设置外网访问 1.注释bind并且....