简单,可复制

点点滴滴,尽在文中

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 43 下一页

2013年10月1日

摘要: 丰富的数据结构使得redis的设计非常的有趣。不像关系型数据库那样,DEV和DBA需要深度沟通,review每行sql语句,也不像memcached那样,不需要DBA的参与。redis的DBA需要熟悉数据结构,并能了解使用场景。下面举一些常见适合kv数据库的例子来谈谈键值的设计,并与关系型数据库做一个对比,发现关系型的不足之处。用户登录系统记录用户登录信息的一个系统, 我们简化业务后只留下一张表。关系型数据库的设计mysql> select * from login;+---------+----------------+-------------+------------------- 阅读全文
posted @ 2013-10-01 09:57 ggjucheng 阅读(4527) 评论(0) 推荐(0) 编辑

摘要: 毫无疑问,Redis开创了一种新的数据存储思路,使用Redis,我们不用在面对功能单调的数据库时,把精力放在如何把大象放进冰箱这样的问题上,而是利用Redis灵活多变的数据结构和数据操作,为不同的大象构建不同的冰箱。希望你喜欢这个比喻。下面是一篇新鲜出炉的文章,其作者是Redis作者@antirez,他描述了Redis比较适合的一些应用场景,NoSQLFan简单列举在这里,供大家一览:1.取最新N个数据的操作比如典型的取你网站的最新文章,通过下面方式,我们可以将最新的5000条评论的ID放在Redis的List集合中,并将超出集合部分从数据库获取使用LPUSH latest.comments命 阅读全文
posted @ 2013-10-01 09:53 ggjucheng 阅读(448) 评论(0) 推荐(0) 编辑

2013年9月30日

摘要: 众所周知,Redis是一个内存数据库,和Memcached类似,所有数据存在内存中,当然,Redis有rdb和appendonlyfile两个落地文件,可以对断电停机等故障下的数据恢复做一些保证.但是到2.0版本之前,Redis的所有数据在运行时都完全是内存读写.然而在可见的未来,Redis的官网上已经有关于2.0最重要功能的预告,那就是RedisVirtual Memory.在2.0的测试版本中已经包含VM的测试版代码,但实际上此功能已经比较成熟.使用方法是将配置文件中的vm-enabled参数设置为yes简单来说,Redis Virtual Memory就是Redis将支持一些选项,通过配 阅读全文
posted @ 2013-09-30 18:16 ggjucheng 阅读(1179) 评论(0) 推荐(0) 编辑

摘要: Redis常用数据类型Redis最为常用的数据类型主要有以下五种:StringHashListSetSorted set在具体描述这几种数据类型之前,我们先通过一张图了解下Redis内部内存管理中是如何描述这些不同数据类型的:首先Redis内部使用一个redisObject对象来表示所有的key和value,redisObject最主要的信息如上图所示:type 代表一个value对象具体是何种数据类型,encoding是不同数据类型在redis内部的存储方式,比如:type=string代表value存 储的是一个普通字符串,那么对应的encoding可以是raw或者是int,如果是int则 阅读全文
posted @ 2013-09-30 18:15 ggjucheng 阅读(812) 评论(0) 推荐(0) 编辑

2013年5月8日

摘要: 前言由于项目中,需要统计每个业务组使用的计算机资源,如cpu,内存,io读写,网络流量。所以需要阅读源码查看hadoop的默认counter。MapReduce Counter可以观察MapReduce job运行期的一些细节数据,Counter有"组group"的概念,用于表示逻辑上相同范围的所有数值。cpu如何衡量mapreduce的任务的计算量呢,如果按照任务的运行时间,有些任务的大部分时间可能卡在最后一个reduce,或者运行期间有资源抢占问题,造成运行时间较高。如果按照任务的map数和reduce数,也是不准确的,因为有些map和reduce处理的数据量很少,运行 阅读全文
posted @ 2013-05-08 11:14 ggjucheng 阅读(5510) 评论(2) 推荐(3) 编辑

2013年4月16日

摘要: jmap打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。可以输出所有内存中对象的工具,甚至可以将VM中的heap,以二进制输出成文本。使用方法jmap-histopid。如果连用SHELLjmap-histopid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。jmap-dump:format=b,file=outfile3024可以将3024进程的内存heap输出出来到outfile文件里,再配合MAT(内存分析工具(MemoryAnalysisTool)或与jhat(JavaHeapAn 阅读全文
posted @ 2013-04-16 21:43 ggjucheng 阅读(40195) 评论(0) 推荐(0) 编辑

摘要: jps用来查看基于HotSpotJVM里面所有进程的具体状态,包括进程ID,进程启动的路径等等。与unix上的ps类似,用来显示本地有权限的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。使用jps时,不需要传递进程号做为参数。Jps也可以显示远程系统上的JAVA进程,这需要远程服务上开启了jstat服务,以及RMI注及服务,不过常用都是对本对的JAVA进程的查看。命令格式jps[options][hostid]常用参数说明-m输出传递给main方法的参数,如果是内嵌的JVM则输出为null。-l输出应用程序主类的完整包名,或者是应用程序JAR文件的完整路径。-v输出传给 阅读全文
posted @ 2013-04-16 21:12 ggjucheng 阅读(14895) 评论(1) 推荐(0) 编辑

摘要: tomcat默认参数是为开发环境制定,而非适合生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈。tomcat内存优化linux修改TOMCAT_HOME/bin/catalina.sh,在前面加入JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m -Duser.timezone=Asia/Shanghai"windows修改TOMCAT_HOME/bin/catalina.bat,在前面加入set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSi 阅读全文
posted @ 2013-04-16 20:40 ggjucheng 阅读(70401) 评论(1) 推荐(2) 编辑

摘要: 详细元素属性 元素名属性解释serverport指定一个端口,这个端口负责监听关闭tomcat的请求shutdown指定向端口发送的命令字符串servicename指定service的名字Connector(表示客户端和service之间的连接)port指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求minProcessors服务器启动时创建的处理请求的线程数maxProcessors最大可以创建的处理请求的线程数enableLookups如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为f... 阅读全文
posted @ 2013-04-16 20:09 ggjucheng 阅读(2486) 评论(0) 推荐(1) 编辑

摘要: 前言tomcat7开始,tomcat支持应用的多版本部署,这个特性很不错,尤其是生产环境中,升级应用,无需重启tomcat,升级过程不影响业务。热升级的特性,也只有少数顶级商业中间件能做到。tomcat的并行部署tomcat7开始,可以同时部署相同context path的多个不同版本的web应用,现在只能通过tomcat manager使用WAR file to deploy,才能做到多版本同时部署。war包的命名只能是context.war,context##2.war,context##3.war之类。当用户使用http://localhost:8080/context访问时,规则如下: 阅读全文
posted @ 2013-04-16 18:18 ggjucheng 阅读(9033) 评论(0) 推荐(0) 编辑

上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 43 下一页