tinguo002

 

redis使用

阅读

 


下载的windows版本是redis-2.0.2,解压到D盘下:

D:\redis-2.0.2


进到该目录下,有下列文件:

 redis-server.exe:服务程序

   redis-check-dump.exe:本地数据库检查

   redis-check-aof.exe:更新日志检查

   redis-benchmark.exe:性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询 (类似于 Apache 的ab 工具).


启动Redis服务(conf文件指定配置文件,若不指定则默认):

D:\redis-2.0.2>redis-server.exe redis.conf



启动cmd窗口要一直开着,关闭后则Redis服务关闭

这时服务开启着,另外开一个窗口进行,设置客户端:

D:\redis-2.0.2>redis-cli.exe -h 202.117.16.133 -p 6379

然后可以开始玩了:



--------------------------------------------------------------------------------------------------------------------------------

 

Redis提供了多种语言的客户端,包括Java,C++,python。

 

Redis官网上推荐的Java包是Jedis,去下载Jedis,在Java项目中导入Jedis包,开始发现有错误,是因为缺少org.apache.commons这个包,

去网上找此包,下载导入后,Jedis就没有错误了。


可以开始了,用Jedis来操作Redis:






http://www.cnblogs.com/kkgreen/archive/2011/11/09/2243554.htm




你的
redis在真实环境中不可以谁想访问就访问,所以,必须要设置密码。

设置密码的步骤如下:

<!--[if !supportLists]-->1.       <!--[endif]-->修改redis.conf文件配置

 

root@ubuntu:/usr/local/redis-2.4.14#  vim redis.conf

#  requirepass foobared去掉注释,foobared改为自己的密码,我在这里改为123456

requirepass  123456

 

<!--[if !supportLists]-->2.       <!--[endif]-->启动服务

 

root@ubuntu:/usr/local/redis-2.4.14# ./src/redis-server redis.conf

 

<!--[if !supportLists]-->3.       <!--[endif]-->客户端连接

 

naxsu@ubuntu:/usr/local/redis-2.4.14$ ./src/redis-cli

redis 127.0.0.1:6379> get a

(error) ERR operation not permitted

redis 127.0.0.1:6379>

提示没有权限

naxsu@ubuntu:/usr/local/redis-2.4.14$ ./src/redis-cli -a 123456

redis 127.0.0.1:6379> get a

"b"

 

到此说明设置密码有效了。

设置随机启动

在服务器上,你每次重启机器后再去启动redis的服务,这是很麻烦的,所以将Redis作为 Linux 服务随机启动是很有必要的。

修改/etc/rc.local文件

 

root@ubuntu:/usr/local/redis-2.4.14# vim /etc/rc.local

 

在最后加入下面一行代码

 

./usr/local/redis-2.4.14/src/redis-server /usr/local/redis-2.4.14/redis.conf

 

重启机器看看效果

 

根据我的测试,设置是成功的。

l

文章详细参考:

http://www.iteye.com/topic/1124400

posted @ 2014-07-30 12:13 一堣而安 阅读(642) | 评论 (0)编辑 收藏

jQuery 重复加载,导致依赖于 jQuery的JS全部失效问题

父页面引入子页面,子页面引入jQuery.js文件,父页面JS依赖jQuery.js   ,出现问题是,总提示JS对象无效。猜测jQuery加载顺序不是最早造成的。

父页面:


子页面:


从这里看 ,jQuery.js   是最早的咯,可是为什么其它的js都提示  属性无效呢。


后面用 IE11 的F12工具查看 JS 的加载顺序,发现  jQuery 是最早加载的,只是加页面加载完毕后,突然有个请求又加载了一次 jQuery。


原因是如下代码:
$(function() {
    $("#zjyw_table_1").load("xxx.jsp");
}
xxx.jsp 里又加载了 jQuery.js   。  把这句注释后就正常了。

这问题还郁闷了挺久,记录一下,方便其它人哈。

js加载顺序的一个文章:http://blog.csdn.net/dannywj1371/article/details/7048076

posted @ 2014-07-24 10:34 一堣而安 阅读(748) | 评论 (0)编辑 收藏

java request 获取域名


获取域名,如:http://f0rb.iteye.com/


获取带部署环境上下文的域名,如: http://www.iteye.com/admin/

StringBuffer url = request.getRequestURL();  

String tempContextUrl = url.delete(url.length() - request.getRequestURI().length(), url.length()).append(request.getServletContext().getContextPath()).append("/").toString();  

文章详细参考:http://f0rb.iteye.com/blog/1253746

posted @ 2014-07-23 11:44 一堣而安 阅读(2116) | 评论 (0)编辑 收藏

JS中URL编码参数(UrlEncode)

JS中URL编码参数(UrlEncode)
网上有很多文字作品写涉及在JS中呈现类似UrlEncode功能时都是自定义参数来呈现,其实JS中本身就有那样的参数。
参数parameter由于用类似URL的形式传过去 , 所以别直接就那样赋值
以下是对变量值的URL编码总结 : 意见用encodeURIComponent() , GET 和POST方法都能够发送过去
Java编程script中存在几种对URL字符串停止编码的窍门:escape(),encodeURI(),以及encodeURIComponent()。这几种编码所起的功能各不相同。
escape() 窍门:
采用ISO Latin字符集对指定的字符串停止编码。所有的空格符、标点符号、特殊字符以及更多有联系非ASCII字符都将被转化成%xx各式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。
不会被此窍门编码的字符: @ * / +
encodeURI() 窍门:
把URI字符串采用UTF-8编码各式转化成escape各式的字符串。
不会被此窍门编码的字符:! @ # $& * ( ) = : / ; ? + '
encodeURIComponent() 窍门:
把URI字符串采用UTF-8编码各式转化成escape各式的字符串。与encodeURI()相比,那个窍门将对更多的字符停止编码,比如 / 等字符。所以假如字符串里面包含了URI的几个部份的话,别用那个窍门来停止编码,否则 / 字符被编码之后URL将呈现错误。
不会被此窍门编码的字符:! * ( ) '

因此,对于汉文字符串来说,假如不期望把字符串编码各式转化成UTF-8各式的(比如原页面和目的页面的charset是一致的时候),只需求应用 escape。假如你的页面是GB2312或者更多有联系的编码,而接受参数parameter的页面是UTF-8编码的,就要采用encodeURI或者encodeURIComponent。

文章详细参考:http://www.cnblogs.com/neru/archive/2010/07/10/1774718.html

posted @ 2014-07-22 19:09 一堣而安 阅读(1003) | 评论 (0)编辑 收藏

JAVA反射机制,把JavaBean属性转成字符串

     摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->package com.jetsum.util;import java.io.StringReader;import java.lang.reflect.Field;impo...  阅读全文

posted @ 2014-07-22 15:14 一堣而安 阅读(3914) | 评论 (0)编辑 收藏

Java String转Float精度不准确问题

String floatValStr = "4.5";
BigDecimal b1 = new BigDecimal(floatValStr );
BigDecimal b2 = new BigDecimal(100);
dqll = b1.multiply(b2).toString();    //4.5*100

有关BigDecimal  api参考:
http://blog.sina.com.cn/s/blog_6a0cd5e501011soa.html

posted @ 2014-07-21 19:39 一堣而安 阅读(2664) | 评论 (0)编辑 收藏

Linux 服务器 防火墙开放端口

服务器上有防火墙,应该部署上去要开放端口才能被访问。
==========开放端口方法=======
1.查看防火墙状态
service iptables status
2.开放端口
使用WinSCP工具连接服务器,找到 文件 /etc/sysconfig/iptables ,编辑
添加如下语句:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 8083 -j ACCEPT 




3.重启防火墙
service iptables restart 


 一.Linux下开启/关闭防火墙命令

1) 永久性生效,重启后不会复原

开启: chkconfig iptables on

关闭: chkconfig iptables off

2) 即时生效,重启后复原

开启: service iptables start

关闭: service iptables stop

文章详细参考:http://blog.csdn.net/kandyer/article/details/8156037

posted @ 2014-07-18 10:34 一堣而安 阅读(199) | 评论 (0)编辑 收藏

Linux mysql 常用命令

  查看数据库状态:service mysqld status
  启动数据库:service mysqld start
  进入数据库:mysql -u root -p123456;
  列出数据库:show databases;
  选择数据库:use databaseName;
  列出表格:show tables;
  显示表格列的属性:show columns from tableName;
  建立数据库:source fileName.txt;
  匹配字符:可以用通配符_代表任何一个字符,%代表任何字符串;
  增加一个字段:alter table tabelName add column fieldName dateType;
  增加多个字段:alter table tabelName add column fieldName1 dateType,add columns fieldName2 dateType;
  多行命令输入:注意不能将单词断开;当插入或更改数据时,不能将字段的字符串展开到多行里,否则硬回车将被储存到数据中;
  增加一个管理员帐户:grant all on *.* to user@localhost identified by "password";
  每条语句输入完毕后要在末尾填加分号';',或者填加'\g'也可以;
  查询时间:select now();
  查询当前用户:select user();
  查询数据库版本:select version();
  查询当前使用的数据库:select database();
 
  1、删除student_course数据库中的students数据表:
  rm -f student_course/students.*
 
  2、备份数据库:(将数据库test备份)
  mysqldump -u root -p test>c:\test.txt
  备份表格:(备份test数据库下的mytable表格)
  mysqldump -u root -p test mytable>c:\test.txt
  将备份数据导入到数据库:(导回test数据库)
  mysql -u root -p test
 
  3、创建临时表:(建立临时表zengchao)
  create temporary table zengchao(name varchar(10));
 
  4、创建表是先判断表是否存在
  create table if not exists students(……);
 
  5、从已经有的表中复制表的结构
  create table table2 select * from table1 where 1<>1;
 
  6、复制表
  create table table2 select * from table1;
 
  7、对表重新命名
  alter table table1 rename as table2;
 
  8、修改列的类型
  alter table table1 modify id int unsigned;//修改列id的类型为int unsigned
  alter table table1 change id sid int unsigned;//修改列id的名字为sid,而且把属性修改为int unsigned
 
  9、创建索引
  alter table table1 add index ind_id (id);
  create index ind_id on table1 (id);
  create unique index ind_id on table1 (id);//建立唯一性索引
 
  10、删除索引
  drop index idx_id on table1;
  alter table table1 drop index ind_id;
 
  11、联合字符或者多个列(将列id与":"和列name和"="连接)
  select concat(id,':',name,'=') from students;
 
  12、limit(选出10到20条)<第一个记录集的编号是0>
  select * from students order by id limit 9,10;
 
  13、MySQL不支持的功能
  事务,视图,外键和引用完整性,存储过程和触发器

14、MySQL会使用索引的操作符号
  <,<=,>=,>,=,between,in,不带%或者_开头的like
 
  15、使用索引的缺点
  1)减慢增删改数据的速度;
  2)占用磁盘空间;
  3)增加查询优化器的负担;
  当查询优化器生成执行计划时,会考虑索引,太多的索引会给查询优化器增加工作量,导致无法选择最优的查询方案;
 
  16、分析索引效率
  方法:在一般的SQL语句前加上explain;
  分析结果的含义:
  1)table:表名;
  2)type:连接的类型,(ALL/Range/Ref)。其中ref是最理想的;
  3)possible_keys:查询可以利用的索引名;
  4)key:实际使用的索引;
  5)key_len:索引中被使用部分的长度(字节);
  6)ref:显示列名字或者"const"(不明白什么意思);
  7)rows:显示MySQL认为在找到正确结果之前必须扫描的行数;
  8)extra:MySQL的建议;
 
  17、使用较短的定长列
  1)尽可能使用较短的数据类型;
  2)尽可能使用定长数据类型;
  a)用char代替varchar,固定长度的数据处理比变长的快些;
  b)对于频繁修改的表,磁盘容易形成碎片,从而影响数据库的整体性能;
  c)万一出现数据表崩溃,使用固定长度数据行的表更容易重新构造。使用固定长度的数据行,每个记录的开始位置都是固定记录长度的倍数,可以很容易被检测到,但是使用可变长度的数据行就不一定了;
  d)对于MyISAM类型的数据表,虽然转换成固定长度的数据列可以提高性能,但是占据的空间也大;
 
  18、使用not null和enum
  尽量将列定义为not null,这样可使数据的出来更快,所需的空间更少,而且在查询时,MySQL不需要检查是否存在特例,即null值,从而优化查询;
  如果一列只含有有限数目的特定值,如性别,是否有效或者入学年份等,在这种情况下应该考虑将其转换为enum列的值,MySQL处理的更快,因为所有的enum值在系统内都是以标识数值来表示的;
 
  19、使用optimize table
  对于经常修改的表,容易产生碎片,使在查询数据库时必须读取更多的磁盘块,降低查询性能。具有可变长的表都存在磁盘碎片问题,这个问题对blob数据类型更为突出,因为其尺寸变化非常大。可以通过使用optimize table来整理碎片,保证数据库性能不下降,优化那些受碎片影响的数据表。 optimize table可以用于MyISAM和BDB类型的数据表。实际上任何碎片整理方法都是用mysqldump来转存数据表,然后使用转存后的文件并重新建数据表;
 
  20、使用procedure analyse()
  可以使用procedure analyse()显示最佳类型的建议,使用很简单,在select语句后面加上procedure analyse()就可以了;例如:
  select * from students procedure analyse();
  select * from students procedure analyse(16,256);
  第二条语句要求procedure analyse()不要建议含有多于16个值,或者含有多于256字节的enum类型,如果没有限制,输出可能会很长;
 
  21、使用查询缓存
  1)查询缓存的工作方式:
  第一次执行某条select语句时,服务器记住该查询的文本内容和查询结果,存储在缓存中,下次碰到这个语句时,直接从缓存中返回结果;当更新数据表后,该数据表的任何缓存查询都变成无效的,并且会被丢弃。
  2)配置缓存参数:
  变量:query_cache _type,查询缓存的操作模式。有3中模式,0:不缓存;1:缓存查询,除非与 select sql_no_cache开头;2:根据需要只缓存那些以select sql_cache开头的查询; query_cache_size:设置查询缓存的最大结果集的大小,比这个值大的不会被缓存。
 
  22、调整硬件
  1)在机器上装更多的内存;
  2)增加更快的硬盘以减少I/O等待时间;
  寻道时间是决定性能的主要因素,逐字地移动磁头是最慢的,一旦磁头定位,从磁道读则很快;
  3)在不同的物理硬盘设备上重新分配磁盘活动;
  如果可能,应将最繁忙的数据库存放在不同的物理设备上,这跟使用同一物理设备的不同分区是不同的,因为它们将争用相同的物理资源(磁头)。

posted @ 2014-07-17 20:08 一堣而安 阅读(185) | 评论 (0)编辑 收藏

Linux 关机、注销命令

linux服务器关机、重启、注销命令

管理员root用户下执行命令。

1关机命令 shutdown

好像ubuntu的终端中默认的是当前用户的命令,只是普通用户,因此在终端器中可以使用sudo -sh 转换到管理员root用户下执行命令。

1)shutdown –help

可以查看shutdown命令如何使用,当然也可以使用man shutdown命令。

2 shutdown -h now 现在立即关机

3shutdown -r now 现在立即重启

4shutdown -r +3 三分钟后重启

5shutdown -h +3 “The System will shutdown after 3 minutes” 提示使用者将在三分钟后关机

6shutdown -r 20:23 2023时将重启计算机

7shutdown -r 20:23 & 可以将在2023时重启的任务放到后台去,用户可以继续操作终端

2中断命令

1)执行完命令后(若没有转到后台),可以使用CTRL+C来中止命令

2kill 程序编码

当命令在后台执行时系统会返回一个程序编码,例如:在使用 shutdown -r 20:23 & 系统返回系统编码:4905

我们可以使用kill 4905来中止重启命令

3ps aux | grep 程序编号

我们如果知道程序的编号,我们可以使用ps aux |grep 程序编号来查询该程序编号对应的命令是什么。

例如上面的程序编号为4905 ,我们可以使用ps aux | grep 4905 就可以查到 shutdown -r 20:23 & 的命令

halt—-最简单的关机命令

其实halt就是调用shutdown -hhalt执行时﹐杀死应用进程﹐执行sync系统调用﹐文件系统写操作完成后就会停止内核。

参数说明:

[-n] 防止sync系统调用﹐它用在用fsck修补根分区之后﹐以阻止内核用老版本的超级块〔superblock〕覆盖修补过的超级块。

[-w] 并不是真正的重启或关机﹐只是写wtmp/var/log/wtmp〕纪录。

[-d] 不写wtmp纪录〔已包含在选项[-n]中〕。

[-f] 没有调用shutdown而强制关机或重启。

[-i] 关机〔或重启〕前﹐关掉所有的网络接口。

[-p] 该选项为缺省选项。就是关机时调用poweroff

init

init是所有进程的祖先﹐它的进程号始终为1﹐所以发送TERM信号给init会终止所有的用户进程﹑守护进程等。shutdown 就是使用这种机制。init定义了8个运行级别(runlevel)init 0为关机﹐init 1为重启。关于init可以长篇大论﹐这里就不再叙述。另外还有telinit命令可以改变init的运行级别﹐比如﹐telinit -iS可使系统进入单用户模式﹐并且得不到使用shutdown时的信息和等待时间。

注销系统的logout命令

Logout 注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可:

[root@localhost root]#logout

Red Hat Linuxrelease 9(Shike)

Kernel 2.4.20.8 on an i686

Login: ← 回到登陆的画面

 

posted @ 2014-07-17 19:13 一堣而安 阅读(186) | 评论 (0)编辑 收藏

错误 ELF 类: ELFCLASS64 (Possible cause: architecture word width mismatch)

 /usr/local/apr/lib/libtcnative-1.so.0.1.27: /usr/local/apr/lib/libtcnative-1.so.0.1.27: 错误 ELF 类: ELFCLASS64 (Possible cause: architecture word width mismatch)
原因:java为32位  apr为64位,二者不匹配。

posted @ 2014-07-17 15:27 一堣而安 阅读(5600) | 评论 (0)编辑 收藏

仅列出标题
共17页: 上一页 1 2 3 4 5 6 7 8 9 下一页 Last 

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

收藏夹

搜索

最新评论

阅读排行榜

评论排行榜