云数据库Memcached
㈠ 腾讯云的产品介绍
腾讯云包括云服务器、云数据库、CDN、云安全、万象图片和云点播等产品。
开发者通过接入腾讯云平台,可降低初期创业的成本,能更轻松地应对来自服务器、存储以及带宽的压力。 云服务器
高性能高稳定的云虚拟机,可在云中提供弹性可调节的计算容量,不让计算能束缚您的想象;您可以轻松购买自定义配置的机型,在几分钟内获取到新服务器,并根据您的需要使用镜像进行快速的扩容。
弹性web 服务
弹性Web 引擎(Cloud Elastic Engine)是一种Web 引擎服务,是一体化web 应用运行环境,弹性伸缩,中小开发者的利器。通过提供已部署好php、nginx 等基础web 环境,让您仅需上传自己的代码,即可轻松地完成web 服务的搭建。
负载均衡
腾讯云负载均衡服务,用于将业务流量自动分配到多个云服务器、弹性web 引擎等计算单元的服务,帮您构建海量访问的业务能力,以及实现高水平的业务容错能力。腾讯云提供公网及内外负载均衡,分别处理来自公网和云内的业务流量分发。 云数据库
云数据库(CDB:Cloud Data Base)是腾讯云平台提供的面向互联网应用的数据存储服务。
Nosql 高速存储
腾讯NoSQL 高速存储,是腾讯自主研发的极高性能、内存级、持久化、分布式的Key-Value存储服务。NoSQL 高速存储以最终落地存储来设计,拥有数据库级别的访问保障和持续服务能力。支持Memcached 协议,能力比Memcached 强(能落地),适用Memcached、TTServer 的地方都适用NoSQL 高速存储。NoSQL 高速存储解决了内存数据可靠性、分布式及一致性上的问题,让海量访问业务的开发变得简单快捷。
对象存储服务(beta)
对象存储服务(COS:Cloud Object Service),是腾讯云平台提供的对象存储服务。COS 为开发者提供安全、稳定、高效、实惠的对象存储服务,开发者可以将任意动态、静态生成的数据,存放到COS 上,再通过HTTP 的方式进行访问。COS 的文件访问接口提供全国范围内的动态加速,使开发者无需关注网络不同所带来的体验问题。
CDN
CDN(Content Delivery Network)即内容分发网络。腾讯CDN 服务的目标与一般意义上的CDN 服务是一样的,旨在将开发者网站中提供给终端用户的内容(包括网页对象—文本、图片、脚本,可下载的对象—多媒体文件、软件、文档,等等),发布到多个数据中心的多台服务器上,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。 云监控
腾讯云监控是面向腾讯云客户的一款监控服务,能够对客户购买的云资源以及基于腾讯云构建的应用系统进行实时监测。开发人员或者系统管理员可以通过腾讯云监控收集各种性能指标,了解其系统运行的相关信息,并做出实时响应,保证自己的服务正常运行。
腾讯云监控提供了可靠,灵活的监控解决方案,当您首次购买云服务后,不需要任何设置,就可以获得基础监控指标,同时,也可以通过简单的步骤后,获取到更多的个性化指标。除了丰富的监控指标视图以外,腾讯云监控还提供个性化的告警服务,客户可以对任意监控指标自定义告警策略。通过短信,邮件,微信等方式,实时推送故障告警。
腾讯云监控也是一个开放式的监控平台,支持用户上报个性化的指标,提供多个维度,多种粒度的实时数据统计以及告警分析。并提供开放式的API,让客户通过接口也能够获取到监控数据。
云安全
腾讯公司安全团队在处理各种安全问题的过程中积累了丰富的技术和经验,腾讯云安全将这些宝贵的安全技术和经验打造成优秀的安全服务产品,为开发商提供业界领先的安全服务。腾讯云安全能够帮助开发商免受各种攻击行为的干扰和影响,让客户专注于自己创新业务的发展,极大的降低了客户在基础环境安全和业务安全上的投入和成本。
云拨测
云拨测依托腾讯专有的服务质量监测网络,利用分布于全球的服务质量监测点,对用户的网站,域名,后台接口等进行周期性监控, 并提供实时告警, 性能和可用性视图展示,智能分析等服务。 TOD 大数据处理
TOD 是腾讯云为用户提供的一套完整的、开箱即用的云端大数据处理解决方案。开发者可以在线创建数据仓库,编写、调试和运行SQL 脚本,调用MR程序,完成对海量数据的各种处理。另外开发者还可以将编写的数据处理脚本定义成周期性执行的任务,通过可视化界面拖拽定义任务间依赖关系,实现复杂的数据处理工作流。主要应用于海量数据统计、数据挖掘等领域。已经为微信、QQ 空间、广点通、腾讯游戏、财付通、QQ 网购等关键业务的提供了数据分析服务。
腾讯云分析
腾讯云分析是一款专业的移动应用统计分析工具,支持主流智能手机平台。开发者可以方便地通过嵌入统计SDK,实现对移动应用的全面监测,实时掌握产品表现,准确洞察用户行为。不仅仅是记录,移动APP 统计还分析每个环节,利用数据透过现象看本质。腾讯云分析还同时提供业内市场排名趋势、竞品排名监控等情报信息,让您在应用开发运营过程中,知己知彼,百战百胜。
腾讯云搜
腾讯云搜(Tencent Cloud Search)是腾讯公司基于在搜索领域多年的技术积累,对公司内部各大垂直搜索业务搜索需求进行高度抽象, 把搜索引擎组件化、平台化、服务化,最终形成成熟的搜索对外开放能力,为广大移动应用开发者和网站站长推出的一站式结构化数据搜索托管服务。 移动加速
移动加速服务是腾讯云针对终端应用提供的访问加速服务,通过加速机房、优化路由算法、动态数据压缩等多重措施提升移动应用的访问速度和用户体验,并为客户提供了加速效果展示、趋势对比、异常告警等运营工具随时了解加速效果。
应用加固
应用加固服务是腾讯云依托多年终端安全经验,提供的一项终端应用安全加固服务。具有操作简单、多渠道监控、防反编译防篡改防植入、零影响的特点,帮助用户保护应用版权和收入。
腾讯云安全认证
腾讯云安全认证是腾讯云提供的免费安全认证服务,通过申请审核的用户将获得权威的腾讯云认证展示,让您的业务获得腾讯亿万用户的认可。免费安全服务,权威认证展示,腾讯云已为2.6万网站、应用保驾护航。
信鸽推送
信鸽(XG Push)是一款专业的免费移动App 推送平台,支持百亿级的通知/ 消息推送,秒级触达移动用户,现已全面支持Android 和iOS 两大主流平台。开发者可以方便地通过嵌入SDK,通过API 调用或者Web 端可视化操作,实现对特定用户推送,大幅提升用户活跃度,有效唤醒沉睡用户,并实时查看推送效果。
域名备案
腾讯云备案服务,帮助您将网站在工信部系统中进行登记,获得备案证书悬挂在网站底部。目前支持企业、个人、政府机关、事业单位、社会团体备案。
云API
云API 是构建云开放生态重要的一环。腾讯云提供的计算、数据、运营运维等基础能力,包括云服务器、云数据库、CDN 和对象存储服务等,以及腾讯云分析(MTA)、腾讯云推送(信鸽)等大数据运营服务等,都将以标准的开放API 的形式提供给广大企业和开发者使用,方便开发者集成和二次开发。
万象图片
万象图片是将QQ空间相册积累的十年图片经验开放给开发者,提供专业一体化的图片解决方案,涵盖图片上传、下载、存储、图像处理。
维纳斯
维纳斯(Wireless Network Service)专业的移动网络接入服务,使用腾讯骨干网络,全国400个节点,连通成功率99.9%。
云点播
腾讯云一站式视频点播服务,汇聚腾讯强大视频处理能力。从灵活上传到快速转码,从便捷发布到自定义播放器开发,为客户提供专业可靠的完整视频服务。
㈡ 阿里云redis 一个可以建立多个数据库吗
redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。
问题是这个项目还很新,可能还不足够稳定,redis 是一个高性能的key-value数据库。
redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。
它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。问题是这个项目还很新,可能还不足够稳定,而且没有在实际的一些大型系统应用的实例。此外,缺乏mc中批量get也是比较大的问题,始终批量获取跟多次获取的网络开销是不一样的。
㈢ 云数据库 redis 版需要多大的
1.
redis
是一个高性能的key-value数据库。
2.
redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部
分场合可以对关系数据库起到很好的补充作用。
3.
它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。问题是这个项目还很新,可能还不足够稳定,而且没有在实际的一些大型系统应用的实例。
4.
此外,缺乏mc中批量get也是比较大的问题,始终批量获取跟多次获取的网络开销是不一样的。
㈣ 云计算学习该怎么入门
云计算是基于互联网的相关服务的增加、使用和交互模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。学习云计算推荐选择【达内教育】。
【云计算的学习】一般包含五大阶段:
云计算第一阶段:主要学习网络基础,包括计算机网络、云计算网络,配备有企业级项目实战:IP地址配置与DNS解析。
云计算第二阶段:学习linux基础,包括Linux操作系统以及Linux高级管理。企业级项目实战为:云数据中心主机CPU资源利用率实时统计、分析系统。
云计算第三阶段:学习Linux运维自动化,企业级项目实战为Python+Shell实现企业级FTP文件统一管理。
云计算第四阶段:数据库运维管理的学习,企业级项目实战:MySQLGalera高可用集群环境部署、异步消息队列集群RabbitMQ部署与运维。
云计算第五阶段:企业级云架构管理与综合实战(PaaS+TaaS),项目训练的是基于LAMP架构实现云计算PaaS平台典型应用部署与运维,通过Nginx实现千万级并发访问处理。感兴趣的话点击此处,免费学习一下
想了解更多有关云计算入门知识的相关信息,推荐咨询【达内教育】。作为国内IT培训的领导品牌,达内的每一名员工都以“帮助每一个学员成就梦想”为己任,也正因为达内人的执着与努力,达内已成功为社会输送了众多合格人才,为广大学子提供更多IT行业高薪机会,同时也为中国IT行业的发展做出了巨大的贡献。达内IT培训机构,试听名额限时抢购。
㈤ 阿里云数据库redis怎么配置
根据下面步骤创建适应业务需求的云数据库Redis版实例。
使用下列方法中任意一种打开购买页:
打开云数据库Redis版产品首页,单击立即购买。
说明如果尚未登录阿里云账号,单击立即购买后需要先使用阿里云账号和密码登录。
登录Redis管理控制台,单击右上角的创建实例。
设置以下参数。
选择密码设置方式。
立即设置:在下方的输入密码区域设置密码。
稍后设置:创建实例后再修改密码。
设置实例名称、购买数量,如果创建包年包月实例,还需设置时长。
在确认订单页,阅读《云数据库KVStore版服务协议》,确认接受后在服务协议前的选框中单击勾选。
单击去开通。
因为这方面内容较多,这里也写不开那么多内容,所以你可以留言或到我的博客上搜索相关内容,老魏有写过教程,还不止一篇,都挺详细的内容,可以帮助你入门。
㈥ Linux云计算培训学习内容包括哪些
以下是比较经典的Linux编程学习路线:
第一阶段:linux基础入门
1. 开班课程介绍-规章制度介绍-破冰活动;
2. Linux硬件基础/Linux发展历史;
3. Linux系统安装/xshell连接/xshell优化/SSH远程连接故障问题排查
4. 第一关一大波命令及特殊字符知识考试题讲解
5. L inux基础优化
6. Linux目录结构知识精讲
7. 第二关一大波命令及特殊知识考试题讲解(上)
8. 第二关一大波命令及特殊知识考试题讲解(下)
9. Linux文件属性一大堆知识精讲
10. Linux通配符/正则表达式
11. 第三关一大波命令及重要知识考试题讲解(上)
12. 第三关一大波命令及重要知识考试题讲解(下)
13. Linux系统权限(上)
14. Linux系统权限(下)
15. 第一阶段结束需要导师或讲师对整体课程进行回顾
第二阶段:linux系统管理进阶
1. Linux定时任务
2. Linux用户管理
3. Linux磁盘与文件系统(上)
4. Linux磁盘与文件系统(中下)
5. Linux三剑客之sed命令
第三阶段:Linux Shell基础
1. Shell编程基础1
2. Shell编程基础234
3. Linux三剑客之awk命令
第四阶段:Linux网络基础
1. 计算机网络基础上
2. 计算机网络基础下
3. 第二阶段结束需要导师或讲师对整体课程进行回顾。
第五阶段:Linux网络服务
1. 集群实战架构开始及环境准备
2. rsync数据同步服务
3. Linux全网备份项目案例精讲
4. nfs网络存储服务精讲
5. inotify/sersync实时数据同步/nfs存储实时备份项目案例精讲
第六阶段:Linux重要网络服务
1. http协议/www服务基础
2. nginx web介绍及基础实践
3. nginx web精讲结束
4. lnmp环境部署/数据库异机迁移/共享数据异机迁移到NFS系统
5. nginx负载均衡深入透彻
6. keepalived高可用深入透彻
第七阶段:Linux中小规模集群构建与优化(50台)
1. 期中架构开战说明+期中架构部署回顾
2. 全体昼夜兼程部署期中架构并完成上台述职演讲(加上两个周末共9天)
3. kickstart cobbler 批量自动安装系统
4. pptp vpn与ntp服务
5. memcached原理及部署/作为缓存及session会话共享
第八阶段:Ansible自动化运维与Zabbix监控
1. SSH服务秘钥认证
2. ansible批量自动化管理集群(入门及深入)
3. zabbix监控
第九阶段:大规模集群高可用服务(Lvs、Keepalived)
1. Centos7系统自行安装/centos6与7区别
2. lvs负载均衡集群/keepalived管理LVS集群
第十阶段:java Tomcat服务及防火墙Iptables
1. iptables防火墙精讲上
2. iptables防火墙精讲下
3. tomcat java应用服务/nginx配合tomcat服务部署及优化
第十一阶段:MySQL DBA高级应用实践
1. MySQL数据库入门基础命令
2. MySQL数据库进阶备份恢复
3. MySQL数据库深入事务引擎
4. MySQL数据库优化SQL语句优化
5. MySQL数据库集群主从复制/读写分离
6. MySQL数据库高可用/mha/keepalved
第十二阶段:高性能数据库Redis和Memcached课程
第十三阶段:Linux大规模集群架构构建(200台)
第十四阶段:Linux Shell编程企业案例实战
第十五阶段:企业级代码发布上线方案(SVN和Git)
1. GIT管理
2. 代码上线项目案例
第十六阶段企业级Kvm虚拟化与OpenStack云计算
1. KVM虚拟化企业级实战
2. OpenStack云计算企业级实战
第十七阶段公有云阿里云8大组件构建集群实战
第十八阶段:Docker技术企业应用实践
1. Docker容器与微服务深入实践
2. 大数据Hadoop生态体系及实践
第十九阶段:Python自动化入门及进阶
第二十阶段:职业规划与高薪就业指导
㈦ 有人用memcached出过这种问题么
1、key-value的限制
缓存的key有长度限制,key的组成有特定字符的限制。
缓存的value必须可以序列化,且缓存的单一value容量有大小限制,对于可序列化的value,应该想方设法尽量规避某些特定数据结构,比如Hashtable,DataTable这些内部其实非常非常之复杂的数据结构。对于读频繁的操作来说,每次序列化和反序列化复杂数据结构的开销可想而知。
如果连分布式缓存的key和value(尤其是value)的一般限制都搞错了,那么使用缓存的后果很可能只是白白增加了网络IO及序列化、反序列化的开销,对系统性能提升当然是巨大的反作用。
2、小心Memcached的.net客户端的误用
这一点隐藏的也比较深,下面以应用广泛的EnyimMemcached为例来简单说明。
通常我们使用的客户端每次实例化MemcachedClient对象内部都会初始化一个客户端对象池(TCP连接池,客户端命名为ServerPool)。所谓TCP连接池就是将创建好的TCP连接(连接数通常按照配置来,生产环境的配置不会小于两位数)初始化放在容器内,客户端调用的时候可以直接拿出已经存在的TCP连接来用,这样可以省去实时打开TCP连接的开销。
因为有人喜欢using一下(当然包括楼主自己了),一看到MemcachedClient是继承自IDisposable的,必须用using啊,然后就要new一个MemcachedClient对象,这样客户端内部也就不得不再初始化一个TCP连接池。如果某个使用缓存的服务方法调用频繁,很快你就会发现系统CPU飙升,页面打开速度奇慢,直至不能正常访问。
我们知道,分布式缓存系统都有一个TCP连接上限的设置,无论如何,超过这个上限都有可能引发连环反应,这种反应毫无疑问是不良副作用。
所以如果我们误用MemcachedClient,每次都new一个对象,那么高并发情况下效果就非常惨了,一方面web服务器因为TCP连接过多无法正常访问,另一方面Memcached服务器也因为连接太多负载过重而性能变得极差,依赖Memcached的服务很可能短时间内只接收到超时响应。
解决方案无比简单,配置合适的TCP连接数,MemcachedClient对象单例即可。
最后还要重申选择使用缓存的业务场景的重要性。这一点真的无法说透,但是根据一些已有经验,可以提炼出两条比较通用的缓存准则:
1、写频繁的数据不适合缓存;
2、读频繁而写不频繁的数据适合缓存。
果然正确的话都是废话,上面两条等于没说。
怕你们说无聊,还是要奉献两条自己使用缓存的主要准则,当然只是自己一家之言经验之谈,不可全信,切记,否则被总监劝退老子概不负责:
1、适合缓存的数据通常应该对外公开供(所有)人调用,私有的数据缓存多数情况下是没有意义的;
2、对准确性、实时性、安全性等要求极高的业务数据,你的数据可能不适合缓存。
顺带再提一下web开发中的性能问题。据说如果一个网站有性能问题,那么它一定会出现性能问题。数据库、缓存、消息队列、各种框架、com组件等等等等,这些web开发中的标配,有哪个使用不当不会引发系统的性能问题呢?甚至大家习以为常的拼接字符串在特定条件下都会造成系统崩溃。我们也知道生产环境就像国际政治一样错综复杂波谲云诡,测试环境、UAT环境通过并不能保证系统诸事无虞,应该时刻认识到coding无小事,否则一个疏忽就有可能造成生产环境发生悲剧乃至惨剧。
㈧ 四大开源数据库是哪些
开源世界中的那几个免费数据库
发布时间:2011-11-22 09:34:30 来源:CSDN 评论:0 点击:1476 次 【字号:大 中 小】
QQ空间 新浪微博 腾讯微博 人人网 豆瓣网 网络空间 网络搜藏 开心网 复制 更多 0
开源数据库MySQLMySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源...
开源数据库MySQL
MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
盘点:开源社区那些免费的数据库软件
MySQL为多种编程语言提供了API,包括C、C++、C#、Delphi、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。而其自身是采用C和C++编写的,使用了多种编译器进行测试,所以,MySQL能够保证源代码具有很强的可移植性。这样的一款数据库,自然能够支持几乎所有的操作系统,从Unix、Linux到Windows,具体包括AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、NetBSD、OpenBSD、OS/2 Wrap、Solaris、SunOS、Windows等多种操作系统。最重要的是,它是一个可以处理拥有上千万条记录的大型数据库。
与此同时,MySQL也产生了很多分支版本的数据库也非常值得推荐。
首先是MariaDB,它是一个采用Maria存储引擎的MySQL分支版本,是由原来MySQL的作者 Michael Widenius创办的公司所开发的免费开源的数据库服务器。与MySQL相比较,MariaDB更强的地方在于它拥有更多的引擎,包括Maria存储引擎、PBXT存储引擎、XtraDB存储引擎、FederatedX存储引擎,它能够更快的复制查询处理、运行的速度更快、更好的功能测试以及支持对Unicode的排序等。
其次是rcona,它为MySQL数据库服务器进行了改进,在功能和性能上较MySQL有着很显着的提升。该版本提升了在高负载情况下的InnoDB的性能,同时,它还为DBA提供一些非常有用的性能诊断工具,并且提供很多参数和命令来控制服务器行为。
第三是Percona Server,它使用了诸如google-mysql-tools、Proven Scaling和 Open Query对MySQL进行改造。并且,它只包含MySQL的服务器版,并没有提供相应对 MySQL的Connector和GUI工具进行改进。
非关系型数据库NoSQL
从NoSQL的字面上理解,NoSQL就是Not Only SQL,被业界认为是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于目前铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。
盘点:开源社区那些免费的数据库软件
当然,NoSQL也是随着互联网Web2.0网站的兴起才能取得长足的进步。关键的需求在于,传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。
首先推荐的是Oracle NoSQL Database,这是一个社区版。Oracle的这个NoSQL Database, 是在10月4号的甲骨文全球大全上发布的Big Data Appliance的其中一个组件,Big Data Appliance是一个集成了Hadoop、NoSQL Database、Oracle数据库Hadoop适配器、Oracle数据库Hadoop装载器及R语言的系统。
其次推荐的是Membase。Membase是NoSQL家族的一个新的重量级的成员。Membase是开源项目,源代码采用了Apache2.0的使用许可。该项目托管在GitHub.Source tarballs上,目前可以下载beta版本的Linux二进制包。该产品主要是由North Scale的memcached核心团队成员开发完成,其中还包括Zynga和NHN这两个主要贡献者的工程师,这两个组织都是很大的在线游戏和社区网络空间的供应商。
并且,Membase容易安装、操作,可以从单节点方便的扩展到集群,而且为memcached(有线协议的兼容性)实现了即插即用功能,在应用方面为开 发者和经营者提供了一个比较低的门槛。做为缓存解决方案,Memcached已经在不同类型的领域(特别是大容量的Web应用)有了广泛的使用,其中 Memcached的部分基础代码被直接应用到了Membase服务器的前端。通过兼容多种编程语言和框架,Membase具备了很好的复用性。在安装和配置方面,Membase提供了有效的图形化界面和编程接口,包括可配置 的告警信息。
Membase的目标是提供对外的线性扩展能力,包括为了增加集群容量,可以针对统一的节点进行复制。 另外,对存储的数据进行再分配仍然是必要的。
第三推荐的是Hibari。Hibari在日语中意思为“云雀”,它是一个专为高可靠性和大数据存储的数据库引擎,可用于云计算环境中,例如 webmail、SNS和其他要求T/P级数据存储的环境中。同时,Hibari也支持Java,C/C++,Python,Ruby和Erlang语言的客户端。
第四推荐的是memcachedb。这是一个由新浪网的开发人员开放出来的开源项目,给memcached分布式缓存服务器添加了Berkeley DB的持久化存储机制和异步主辅复制机制,让memcached具备了事务恢复能力、持久化能力和分布式复制能力,非常适合于需要超高性能读写速度,但是 不需要严格事务约束,能够被持久化保存的应用场景,例如memcachedb被应用在新浪博客上面。
第五推荐的是Leveldb。这是一个Google实现的非常高效的kv数据库,目前的版本1.2能够支持billion级别的数据量了。 在这个数量级别下还有着非常高的性能,主要归功于它的良好的设计,特别是LSM算法。LevelDB是单进程的服务,性能非常之高,在一台4个Q6600的CPU机器上,每秒钟写数据超过40w,而随机读的性能每秒钟超过10w。
XML数据库的优势
XML数据库是一种支持对XML格式文档进行存储和查询等操作的数据管理系统。在系统中,开发人员可以对数据库中的XML文档进行查询、导出和指定格式的序列化。目前XML数据库有三种类型:XMLEnabledDatabase(XEDB),即能处理XML的数据库;NativeXMLDatabase(NXD),即纯XML数据库;HybridXMLDatabase(HXD),即混合XML数据库。
关系数据库中的第一代XML支持是切分(或分解)文档,以适应关系表格或将文档原封不动地存储为字符或二进制大对象(CLOB 或 BLOB)。这两个方法中的任一种都尝试将XML模型强制转换成关系模型。然而,这两种方法在功能和性能上都有很大的局限性。混合型模型将XML存储在类似于DOM的模型中。XML数据被格式化为缓冲数据页,以便快速导航和执行查询以及简化索引编制。
在这里,首要要推荐的XML数据库是Sedna。它号称是一款原生态的XML数据库,提供了全功能的核心数据库服务,包括持久化存储、ACID事务、索引、安全、热备、UTF8等。实现了 W3C XQuery 规范,支持全文搜索以及节点级别的更新操作。
第二款XML数据库是BaseX。这款数据库用来存储紧缩的XML数据,提供了高效的 XPath和XQuery的实现,同时,它还提供一个前端操作界面。
盘点:开源社区那些免费的数据库软件
第三款推荐的是XMLDB。这款数据库使用了关系型数据库来存储任意的XML文档,因为所采用的存储机制,所以文档的搜索速度特别快,同时执行XSL转换也相当快。XMLDB同时还提供了一个PHP的模块,可以应用在Web应用中。
第四块推荐的是X-Hive/DB。它是一个为需要高级XML数据处理和存储功能的软件开发者设计的强大的专属XML数据库。X-Hive/DB Java API包含存储、查询、检索、转换和发表XML数据的方法。
与传统关系型数据库相比,XML数据库具有以下优势:第一,XML数据库能够对半结构化数据进行有效的存取和管理。如网页内容就是一种半结构化数据,而传统的关系数据库对于类似网页内容这类半结构化数据无法进行有效的管理。第二,提供对标签和路径的操作。传统数据库语言允许对数据元素的值进行操作,不能对元素名称操作,半结构化数据库提供了对标签名称的操作,还包括了对路径的操作。第三,当数据本身具有层次特征时,由于XML数据格式能够清晰表达数据的层次特征,因此XML数据库便于对层次化的数据进行操作。XML数据库适合管理复杂数据结构的数据集,如果己经以XML格式存储信息,则XML数据库利于文档存储和检索;可以用方便实用的方式检索文档,并能够提供高质量的全文搜索引擎。另外XML数据库能够存储和查询异种的文档结构,提供对异种信息存取的支持。
㈨ 为什么memcached会使用swap
这次故障是memcached服务器引起的。这台云服务器购买时间是2013-02-21,操作系统是CentOS 6.2 64位,配置是1核CPU/4G内存。memcached软件用的是couchbase,版本是2.0.0 enterprise edition (build-1976)。memcached客户用的是EnyimMemcached,版本是2.12。
如何确认是memcached服务器引起的?昨天17:00左右(还在访问高峰期),只要这台memcached云服务器一停运,问题立即消失;一启来,问题立即出现。
这次故障与couchbase无关。依据是同样版本的couchbase安装到另一台云服务器(操作系统是CentOS 6.3 64位)上,问题没有出现。现在的memcached服务器就是这么跑的。
我们来看看应用程序中对memcached的操作情况,使用memcached的地方都是这么操作的——根据key从memcached中取数据,如果取到,直接返回;如果取不到,从数据库中查询,将查询结果写入memcached,然后返回。示例代码如下:
var entry = _cacher.GetData(cacheKey) as BlogEntry;
if (entry == null)
{
//从数据库读取
//...
_cacher.Add(cacheKey, entry, 60);
}
return entry;
而上面代码中 _cacher.GetData(cacheKey) 实际调用的是 Enyim.Caching.Memcache.MemcachedClient.Get() 方法。
如果这里等待时间长,会造成大量处理请求的线程阻塞在这里(堵车),造成正在处理请求的得不到响应,后续的请求没有足够的线程可用。
前天晚上(4月23日)我们已经采取了措施,以防这里存在可能的堵车问题,在web.config中修改了EnyimMemcached的设置,将connectionTimeout改为了1秒(默认是20秒)。
<enyim.com>
<memcached protocol="Binary">
<servers>
<add address="ip1" port="11211" />
</servers>
<socketPool minPoolSize="20" maxPoolSize="200" connectionTimeout="00:00:01" deadTimeout="00:00:02" />
</memcached>
</enyim.com>
也就是说,即使发生堵车现象,也只会等1秒,然后就绕到而行,直接去数据库取数据。
但昨天发生故障时connectionTimeout没起作用,说明客户端已经正常连上了memcached服务器,问题不在客户端。
与coubase无关,与memcached客户端无关,那就剩下两个怀疑对象:1. Linux操作系统(搬到阿里云之前,我们是在Windows上跑的Memcached);2. 虚拟机。
这时,一个故障期间的重要现象闪现在眼前——当时memcached的磁盘IO高!
memcached缓存的数据都在内存中,而且内存占用并不高,磁盘IO怎么会高?太奇怪了!
。。。
通过google搜索“memcached read timeout”,找到柳暗花明的线索——memcached timeout error because of slow response
直接看关键文字:
The problem seemed to boil down to the following:
vm.swappiness=60 (default) is a very bad idea, when combined
with deadline as a io scheler.
...
conclusion:
if you use memcache and need high amounts of memory with
many objects, keep a look at your swap, and if there is
something in it (even 1 kb) - it might be too much.
after setting vm.swappiness to zero and paging in all swap,
the effects were gone.
登上昨天引发故障的那台memcached服务器,运行命令:
cat /proc/sys/vm/swappiness
60
输出结果是60!磁盘IO高就是内存交换引起的!memcached堵车的原因就在这!
只要将swappiness设置为0,就能解决问题,设置方法参考:Adjust Your swappiness。