只想知道 发表于 2015-1-18 11:19:15

JAVA网页编程之怎样在Redis里按形式删除数据仓酷云

用java开发web只要两本书:一本是关于java基础的,一本是关于jsp、servlet的就可以了。开发周期长,我就来讲句题外话,现在有很多思想都是通过java来展现。一台Redis服务器在很短的工夫里损耗了几十个G的内存,终极由于SWAP而宕机。由于这台服务器的社会背景对照庞大,以是一时没法判别犯法怀疑人究竟是谁。
最入手下手的直觉是以为一定有人保留了大致积的数据,因而成绩就酿成了找出哪些键占用的空间对照年夜,DBA同事用了redis-rdb-tools等工具来剖析数据文件。惋惜的是固然找到了一些大致积的键,但终极都扫除了怀疑,成绩仿佛堕入了僵局。
在被直觉带进逝世胡同以后,我们入手下手调剂查询拜访的角度:即使一个键自己占用的空间其实不年夜,可是假如不异形式的键数目良多的话,那末算计起来一样会占用大批空间,因而成绩就酿成了找出哪些不异形式的键占用的空间对照年夜。此次我不想用甚么工具,而是盘算在测试服务器上一边删除可疑键一边检察内存变更情形:
shell>/path/to/redis-clikeysfoo:*|xargs/path/to/redis-clidel悲催的是一运转这个命令服务器就挂了!由于数据太多了,以是KEYS受不了。此时应当利用SCAN,它有游标的观点,每次迭代只触及很少的数据。
间接在命令利用用SCAN有些贫苦,因而我用了PHP:
<?php$redis=newRedis();$redis->setOption(Redis::OPT_SCAN,Redis::SCAN_RETRY);$match=foo:*;$count=10000;while($keys=$redis->scan($it,$match,$count)){$redis->del($keys);}?>在删除的同时注重监控内存变更情形,就可以确认成绩了:
shell>watch-d-n1/path/to/redis-cliinfo|grepmemory至于可疑键的猎取,我是瞎蒙的,复杂经由过程MONITOR大概SCAN猎取采样数据便可,别的今后案例看,监控键总数的变更幅度是很主要的,从INFO里能拿到它。

先说优点,首先和C,C++这些语言比起来,java很简单,去掉指针的java,非常好理解,自动垃圾回收机制也很好,自从JDK1.5推出以后,性能上又有了很大提高。

山那边是海 发表于 2015-1-20 20:15:18

多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。

海妖 发表于 2015-1-29 06:56:05

至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。

若天明 发表于 2015-1-29 14:27:59

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

蒙在股里 发表于 2015-2-1 10:13:42

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

因胸联盟 发表于 2015-2-6 22:04:43

是一种使用者不需花费很多时间学习的语言

分手快乐 发表于 2015-2-18 21:55:33

吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧

柔情似水 发表于 2015-3-6 11:05:01

不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。

飘灵儿 发表于 2015-3-13 00:08:23

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。

乐观 发表于 2015-3-13 00:08:33

象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。

简单生活 发表于 2015-3-20 06:34:33

是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
页: [1]
查看完整版本: JAVA网页编程之怎样在Redis里按形式删除数据仓酷云