首页 文章 精选 留言 我的

精选列表

搜索[服务器],共10000篇文章
优秀的个人博客,低调大师

服务器架构之性能扩展-第九章(10)

第九章Mongodb数据库 9.1mongodb入门 9.1.1 NoSQL入门 NoSQL是not only SQL的缩写,它指的非关系型数据库,是以key-value形式存储,和传统数据不一样,比如不遵循sql标准。随着大数据时代的到来,NoSQL有助于解决传统数据库扩展困难,读写慢,成本高,有限的支撑容量问题.因为它在扩展和性能方面做了提升,对于事务性的要求还不能代替传统数据库。目前新浪微博的redis数据库,视觉中国的mongodb都属于NoSQL数据库范畴。 9.1.2认识mongodb Mongodb是一个介于关系数据库和非关系数据之间的产品,它语法类似javascript语言。数据是键与值的一种组合,格式如{“age”:25}形式,数据以集合存储。目前已超过百家网站使用mongodb。 9.1.3 mongodb的安装 首先到mongodb.org上下载相应版本。 Tar zxvfmongodb-linux-x86-2.2.2.tgz//解压 Cd mongodb-linux-x86-2.2.2//解压完毕后即成为可执行程序 9.1.4启动mongodb Mkdir /usr/local/mongodb Mkdir /usr/local/mongodb/data Rsync-auvz /root/mongo-linux-ix86-2.2.0/bin/ /usr/local/mongodb/ Touch /usr/local/mongodb/dblogs /usr/local/mongodb/bin/mongod--dbpath=/usr/local/mongodb –logpath=/usr/local/mongodb/dblogs –fork//启动mongodb Echo“/usr/local/mongodb/bin/mongod--dbpath=/usr/local/mongodb –logpath=/usr/local/mongodb/dblogs --fork”>>/etc/rc.local //开机启动 一般使用pkill mongod//终止进程,避免使用kill -9杀死进程,因为容易造成mongodb死锁。 /usr/local/mongodb/bin/mongo进入字符界面 9.1.5mongodb体系结构 Mongodb数据库不同于传统的关系数据结构,它包括文档,集合和数据三级结构组成。物理结构为一个ns文件一些数据库.0和数据库.1组成。Mongodb数据类型,包括null、布尔、数字、字符串、数组以及对象六种数据类型组成。 9.1.6 mongodb基本命令 >Show dbs//显示所有数据库 >db.dropDatabase();//删除当前数据库 >use mydb//建立新的数据库 >db.user.insert({name:”user1”,age:25}); //插入数据 >db.user.find();//查看数据 >db.user.drop({name:”user1”}); //删除记录 >db.user.update({_id:1},{name:”user2”});//修改记录 9.2mongodb的高级操作 9.2.1 insert的操作 >db.user.save({name:”user2”});//保存数据 save和insert一般有同样的插入效果。但是当主键id相同时,save便会只做修改不做插入的操作。 Db.cl.remove();删除所有记录,如果加上记录字段则删除相应字段。 批量插入数据 Js方式插入数据 9.2.2 find查询的操作 Db.c1.find();查询语句 Find命令也可以指查找指定字段,字段值为1为真显示,为0为假。 条件查询,gt大于,lt小于,e等于,ne不等于,gte大于等于,lte小于等于,用$定义。 Sort用于排序排列,用sort排列,-1位倒叙,1位正序排列 Limit用来控制显示输出个数,skip用来排除前面多少个 in用来进行范围查找 $or或的查询,$nor非,or与in区别是:or可以接不同字段,in需要接同一个字段。 插入数组,用elemMatch查找数组,代替post.title 查询控制两种方法 查询数组记录,必须在第二个字段进行 9.2.3 update更新的操作 Db.collection.update(criteria,objNew,upsert,multi); Criteria:用于设置查询条件的对象 Objnew:用于设置更新内容 Upsert:如果记录村子啊就更新它,否则新增一记录 Multi:如果多个符合条件的记录,只会更新第一个符合条件的记录 Upsert第三个参数,意思是如果字段不存在则增加该字段 $set可以用于改变源字段值或增加新字段 $inc字段每个年龄增加一岁,inc对字段曾进行增减值的更改 $unset删除字段,当age为真时删除字段 $push增加数组字段 $pop删除上条记录,如为-1则从前数,$pushAll一次插入多条记录 addToSet只能插入不同值记录 $addToSet和$each一起用一次加入多个值 $pull删除数组指定值,$pullAll删除多个指定值 $rename更改字段名 9.2.4创建capped collection固定集合 固定集合是固定大小的数据存储方式,它速度处理更快 Db.createCollection(c6,{capped:true,size:10000,max:5});//数据大小10kB,记录5条,填满了则取代前面的记录 Db.runCommand({convertTocapped:”test”,size:10000}); 9.2.5 GridFS大存储类型 GridFS是一种大二进制文件,可以存储一些大文件。包含.files元数据对象和.chunks二进制块信息。 加载GridFS数据类型: Cd /usr/local/mongodb/bin Tar zcvf mongofiles.tar.gzmongosniff ./mongofiles put mongofiles.tar.gz Mongofile是进行文件上传下载的工具,put上传,get下载 9.3mongodb性能管理 性能优化,如同大多数数据库一样索引可以很好地完成优化工作。可以通过explain()查看数据查询记录的次数。 9.3.1mongodb的索引管理 >db.c1.ensureIndex({name:1});//建立索引 >db.c1.getIndexes();//查看索引 再执行explain()便可以看到次数变为8->1 Db.c1.dropIndexes();//删除索引 9.3.2profile慢查询 profile是一种慢查询日志功能。可以通过两种方式开启: 1、启动mongodb是可以加上—profile=级别 2、使用db.setProfilingLevel(级别,时间);定义级别 0-:不开启;1-:记录慢查询;2-:记录所有密令 最后通过>db.getProfilingLevel();查看级别 9.3.3mongodb优化方案 首先建立索引可以提高执行效率 其次使用limit();可以减少资源的消耗量 再次capped collection固定空间功能可以提高效率 再次,查询时指定字段而不是所有字段,提高速度 最后使用慢查询功能,优化语句。 9.3.4mongodb性能监控 mongosniff命令可以监控数据库操作历史 Mongostat命令可以查看mongodb实时结果 本文转自zsaisai 51CTO博客,原文链接:http://blog.51cto.com/3402313/989251

优秀的个人博客,低调大师

阿里云服务器ECS Apache、Nginx 配置支持跨域访问

问题描述 如何让 Apache、Nginx支持跨域访问。 处理办法 配置Apache 跨域访问 步骤: 修改 httpd.conf。 把 LoadModule headers_module modules/mod_headers.so 前面的注释删除 修改 改为: 即: AllowOverridenone Requireallgranted HeadersetAccess-Control-Allow-Origin* 说明: 首先使用图形界面开启headers_module模块功能。 然后再修改 httpd.conf 配置文件,增加 Header set Access-Control-Allow-Origin * 。 顺序错误会导致无法启动httpd 服务。 配置 Nginx 跨域访问 进入 nginx 的 html 目录,新建 crossdomain.xml,具体路径: /usr/local/nginx/html/crossdomain.xml 在 crossdomain.xml 中添加类似如下内容:注意:默认情况下,/usr/local/nginx/html/crossdomain.xml 是不存在的。 本文转自 顶风走千里 51CTO博客,原文链接:http://blog.51cto.com/13505030/2047576

优秀的个人博客,低调大师

服务器架构之性能扩展-第十二章(13)

十二章、LAMP环境搭建的自动化搭建 所谓自动化搭建当然是实现一定的自动化部署了,并且可以承受一定的大型的网站点击量,LAMP环境的部署完全可以使用自动化脚本实现,这样便达到了无人值守的安装方式。 1、准备下列软件 httpd-2.2.14.tar.gz mysql-5.1.41.tar.gz gd-2.0.35.tar.gz php-5.2.11.tar.gz freetype-2.3.10.tar.gz jpegsrc.v7.tar.gz libpng-1.2.41.tar.gz 下载好,上传到/root/apmg_install. 2、编写一个安装指南install放在/root/apmg_install 下载后,tar zxvf apmg_install.tar.gz ; cd apmg_install; ./setup.sh自动完成安装,时间大概10多分钟 3、编写httpd.sed文件放在/root/apmg_install 目的是为了在apache的httpd.conf中加入相关的行。 文件httpd.sed内容:/application\/x-compress .Z/a\ \ AddType application/x-httpd-php .php 4、编写test.php放在/root/apmg_install <?php phpinfo(); ?> 5、编写测试脚本放在/root/apmg_install/setup.sh 这个脚本基于linux和freebsd,可能要经过多次测试才成功。 #!/bin/sh #this is a script about *nix installing apache,php with gd2.write by sery(sery@163.com),in 2009-12-03 #define some variables http_prefix=/usr/local/apache2 php_prefix=/usr/local/php #need root install is_root=`id |awk ‘{print $1}’|awk -F’[=(]‘ ‘{print $2}’` if [ $is_root != 0 ] then echo“please use root install this program!!!” exit 1 fi #Os is ? Os_is=`uname` if [ "$Os_is" = "FreeBSD" ] then ## install apache if [ ! -d "$http_prefix" ] then tar zxvf httpd-2.2.14.tar.gz cd httpd-2.2.14 ./configure --prefix=$http_prefix --enable-so --enable-write --with-mpm=worker make make install cd .. if [ ! -f "$http_prefix/htdocs/test.php" ] then cp test.php $http_prefix/htdocs fi rm -rf httpd-2.2.14 echo“apache install is ok!” sleep 2 fi #install mysql client is_inst_mysql=`find /usr/local/bin -name mysql | wc -l` if [ "$is_inst_mysql" = 0 ] then tar zxvf mysql-5.0.41.tar.gz cd mysql-5.0.41 ./configure --without-server --with-extra-charsets=gbk,gb2312,utf8 --enable-thread-safe-client make make install cd .. echo“/usr/local/lib”>>/etc/ld.so.conf ldconfig rm -rf mysql-5.0.41 echo“mysql client install ok!” sleep 2 fi #install gd2 if [ ! -d /usr/local/gd2 ] then tar zxvf gd-2.0.35.tar.gz cd gd-2.0.35 ./configure --prefix=/usr/local/gd2 make make install cd .. rm -rf gd-2.0.35 echo“gd2 install is ok!” sleep 2 fi #install php.apache must be installed in /usr/local/apache2 if [ ! -d /usr/local/php ] then tar zxvf php-5.3.6.tar.gz cd php-5.3.6 ./configure --prefix=$php_prefix --with-gd=/usr/local/gd2 --with-apxs2=$http_prefix/bin/apxs --enable-mbregex --enable-bcmath --with-mysql --with-zlib-dir --enable-mbstring=all --with-freetype-dir --with-pdo-mysql make make install cp php.ini-dist $php_prefix/lib/php.ini cd .. rm -rf php-5.3.6 echo“php with gd2 install is ok!” sleep 2 fi # setting apache configuration file sed -f httpd.sed $http_prefix/conf/httpd.conf>$http_prefix/conf/httpd.conf.temp cd $http_prefix/conf mv httpd.conf httpd.conf.old cat httpd.conf.temp>httpd.conf $http_prefix/bin/apachectl -t cd echo“It is very ok!” elif [ "$Os_is" = "Linux" ] then echo“this linux” ## install apache if [ ! -d "$http_prefix" ] then tar zxvf httpd-2.2.14.tar.gz cd httpd-2.2.14 ./configure --prefix=$http_prefix --enable-so–enable-write --with-mpm=worker make make install cd .. if [ ! -f "$http_prefix/htdocs/test.php" ] then cp test.php $http_prefix/htdocs fi rm -rf httpd-2.2.14 echo“apache install is ok!” sleep 2 fi #install mysql client is_inst_mysql=`find /usr/local/bin -name mysql | wc -l` if [ "$is_inst_mysql" = 0 ] then tar zxvf mysql-5.0.41.tar.gz cd mysql-5.0.41 ./configure --without-server --with-extra-charsets=gbk,gb2312,utf8 --enable-thread-safe-client make make install cd .. echo“/usr/local/lib”>>/etc/ld.so.conf ldconfig rm -rf mysql-5.0.41 echo“mysql client install ok!” sleep 2 fi #install freetype if [ ! -d /usr/local/freetype ] then tar zxvf freetype-2.3.5.tar.gz cd freetype-2.3.5 ./configure --prefix=/usr/local/freetype make make install cd .. rm -rf freetype-2.3.5 echo“freetype install is ok!” sleep 2 fi #install jpeg if [ ! -d /usr/local/jpeg ] then tar zxvf jpegsrc.v6.tar.gz cd jpeg-6 ./configure --prefix=/usr/local/jpeg make make install cd .. rm -rf jpeg-6 echo“gpeg install is ok!” fi #install libpng if [ ! -d /usr/local/libpng ] then tar zxvf libpng-1.2.31.tar.gz cd libpng-1.2.31 ./configure --prefix=/usr/local/libpng make make install cd .. rm -rf libpng-1.2.31 echo“libpng install is ok!” sleep 5 fi #link header file if [ ! -f /usr/include/pngconf.h ] then ln -s /usr/local/libpng/include/pngconf.h /usr/include fi if [ ! -f /usr/include/png.h ] then ln -s /usr/local/libpng/include/png.h /usr/include fi #install gd2 if [ ! -d /usr/local/gd2 ] then tar zxvf gd-2.0.35.tar.gz cd gd-2.0.35 ./configure --prefix=/usr/local/gd2 --with-freetype=/usr/local/freetype --with-png=/usr/local/libpng --with-jpeg=/usr/local/ jpeg make make install cd .. rm -rf gd-2.0.35 echo“gd2 install is ok!” sleep 2 fi #install php.apache must be installed in /usr/local/apache2 if [ ! -d /usr/local/php ] then tar zxvf php-5.3.6.tar.gz cd php-5.3.6 ./configure --prefix=$php_prefix --with-gd=/usr/local/gd2 --with-apxs2=$http_prefix/bin/apxs --enable-mbregex --enable-bcmath --with-mysql --with-zlib-dir --enable-mbstring=all --with-pdo-mysql --with-freetype=/usr/local/freetype make make install cp php.ini-dist $php_prefix/lib/php.ini cd .. rm -rf php-5.3.6 echo“php with gd2 install is ok!” sleep 2 fi # setting apache configuration file sed -f httpd.sed $http_prefix/conf/httpd.conf>$http_prefix/conf/httpd.conf.temp cd $http_prefix/conf mv httpd.conf httpd.conf.old cat httpd.conf.temp>httpd.conf $http_prefix/bin/apachectl -t cd echo“It is very ok!” else echo“this is other os,please modify the script” exit 1 fi 6、以上准备工作做好以后,执行setup.sh 执行完毕后,启动apache,然后运行test.php测试 然后执行,setup权限不够赋予权限。 遇到下面的错误提示,如果sh目录存在且脚本无误,最可能是原因是在windows下写的脚本是dos格式的,放在Linux下编码不识别,解决方法是使用dos2unix命令转一下,即输入:dos2unix文件名 我们可以看到,飞快的执行程序呢?结果我们拭目以待。 还有一点特别提醒,我们编写脚本文件的时候是在window条件下,虽然执行了转换,但难免会有乱码,所以一定要vi setup.sh文件查看,还要留心标点符号也要符合linux环境才行。如windows下的‘’“”要转换为linux下的' '和" "。 编译遇到了php5模块没加载正确。查文档需要关闭selinux。 Vi /etc/sysconfig/selinux 把SELINUX=enforcing注释掉:#SELINUX=enforcing,然后新加一行为: SELINUX=disabled然后重启从新编译。 我们然后在编译这次出现 几乎都是ok啦,我们执行/usr/local/apache2/bin/apachectl start 编译完毕我们测试一下:http://192.168.22.132/test.php 7、打包归档 cd /root切换到root tar zcvf apmg_install.tar.gz apmg_install 这样将打包好保存起来,下次可以解包直接使用 本文转自zsaisai 51CTO博客,原文链接:http://blog.51cto.com/3402313/1036233

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册