发表于: 2016-04-27 20:10:13
2 2370
【操作步骤】
1.在项目中使用Redis并进行压力测试。
2.任务6完成。
【知识总结】
1.关于Redis和Memcache的区别:http://blog.163.com/sun_jian_zhang/blog/static/187804041201310795917333/
大致看来,Redis和Memcache各有优劣,只不过Redis功能更强大,存储的数据类型更多,性能方面,二者效率都很高。
Redis中可以存储的数据类型有字符串、哈希值、列表、集合、有序集合,单单使用字符串就能够实现Memcache中的所有功能。
2.Redis怎样存取一个Java对象:http://alanland.iteye.com/blog/1600685
使用序列化和反序列化。
4.Eclipse+tomcat调试项目,配置步骤:
4.1 下载好tomcat,目前的eclipse不支持tomcat9,所以要下载tomcat8或者7,解压,放到/usr/local目录下(这个目录随便啦),我用的ubuntu系统,还需要给tomcat文件夹赋予可执行权限。
4.2 在eclipse上的Server窗口(如果没有,就Window-->Show View-->Servers就出来了),右键-->New-->Server,然后选择Apach-->Tomcat V7.0 Server-->Next-->选择好项目就可以了。
4.3 如果在4.2步中,选择了Tomcat v7.0 Server后,下面并没有出现Server runtime environment这一项(我记得是自动弹出这一项的),就需要在Window-->Preferences-->Server-->Runtime Environments中自己添加一下。
5.使用Redis存取Java对象时,如果用到了序列化和反序列化需要注意:
5.1 首先肯定会引入redis.clients.jedis.Jedis这个类的。新建对象jedis。
5.2 jedis的set方法有两种形式:一种是set(String key,String value),一种是set(byte[] key,byte[] value);相应的,get方法也有两种形式:一种是get(String key),一种是get(byte[] key)。如果用到序列化,一定选byte[] 类型作为参数的方法,而不要选String类型为参数的方法。
5.3 意思就是,假如要把Student类序列化存入Redis,应该这样写jedis.set(key.getBytes(),SerializeUtil.serialize(student)),不能写成jedis.set(key,SerializeUtil.serialize(student).toString())。
6.发现一个小细节,Redis在结束进程后再重启,上一次的缓存数据依然存在,而Memcache关闭服务再重启,上一次的数据就没了。
7.Java项目中使用Redis必须是先启动Redis服务,然后再启动项目,如果你先启动了项目,再启动Redis,那么项目是连接不上Redis的。这一点和Memcache不一样,Memcache可以在项目启动前启动,也可以在项目启动后启动。
关于这一点的原因,我怀疑是这样的:在使用Memcache时,我是直接在项目中配置的Memcache(利用memcache.properties和memcached-content.xml);而使用Redis时,我没有在项目中配置Redis,Redis安装好后自动就配置好了(可以在启动Redis后通过命令来更改配置),所以必须在项目启动前就打开Redis,否则项目就连接不上Redis了。
【出现的问题(已解决)】
1.可能是由于前几天解决那个jar包冲突问题的时候,排除了一些jar包,今天我用eclipse自带的Server:J2EE Preview at localhost进行debug时,一直报错,错误提示是:
Could not instantiate listener org.springframework.web.util.Log4jConfigListener
java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener
但是我用mvn jetty:run的方式启动项目时,不会报这个错,我感觉这个问题不是我项目中的问题,而是这个服务的问题。
我以前一直使用这个Server调试项目的,这个Server调试项目十分地不方便,而且还不支持JSP,我早就想换个Debug方式了,今天我就试着配置了一下tomcat调试,成功了,以后调试都用tomcat,至少支持JSP。
【出现的问题(未解决)】
【疑问】
评论