发表于: 2017-11-20 23:46:49
1 609
今天完成的事情:
1.在nginx配了两个web服务器
这个就不贴了,任务三里面其实是使用过的,不过当时我只是把我的8080端口让nginx代理了,然后就直接通过80端口访问我的项目。
当时是tomcat,resin都使用了,然后端口没有改,都是8080。
我需要通过tomcat启动项目时,只需要启动tomcat就行了;若要通过resin启动项目时,关闭tomcat,启动resin就OK了。
而nginx代理的只是8080端口,所以无论用什么web服务器,都不用管,我只需要你8080端口启动就可以运行其下面的项目。
因为当时就测一个项目,并且对项目也没太多操作,所以就这样用了。有强迫症或感觉实在麻烦的可以修改其中一个服务器的端口,比如resin改完8888。这个就和我们这次的使用差不多了。
需要nginx代理两个服务器,通过端口区分。然后我可以让它们都启动,接着访问项目,实现nginx的反向代理。
回忆结束,就本次配置来说,我配置了远程的tomcat和本地的tomcat让本地的nginx进行代理,而区别在于IP地址的不同,或者将其端口也进行修改,实现不同IP,不同端口也可以。可以 感觉出nginx的方向代理确实很强大。任何服务器,任何IP下的都可以进行代理。
另外,这里还新学到的一个权重的概念,我给本地的权重2,远程1。差不多就是说我通过nginx代理启动其所代理的服务器,有weight1/weightAll的次数访问服务器1,同理下去。比如我设置的是1/3次访问远程tomcat,2/3访问本地的tomcat。这样可以更加体现出其负载均衡的功能。概念出自的原因是由于有的服务器访问量大,有的服务器访问量小,这样可以改比较闲的服务器多给一些权重,可以使我们的请求更快更好的发送出去。
2.下载redis
http://www.runoob.com/redis/redis-install.html
这个菜鸟教程感觉很适合我。就很全的资料,按其上面的操作进行就可以了,有纰漏的地方直接百度就可以了,经检测没什么大问题。
(1)启动redis:
并且需要注意的一点是,在redis使用的全过程中,这个都是不可以关掉的。教程的某个角落是有说明的。
(2)查看是否启动:
由于前面的终端是不可以关掉的,所以我们要新建一个窗口进行测试。
上面的是redis-server程序。
测试的是redis-cli程序。(有的博客里是后面还输了端口以及密码,本着简单的原则,我就直接这样启动了)
还是熟悉的key-value的形式,用set键数据,通过get key获取数据。
检测使用的一些小命令。6379就是端口号。密码在后面写程序的时候还是加上了。
启动的话就在redis-cli以后,在输入AUTH 密码就可以了。
3.了解redis并且写出其工具类,然后进行了测试
这个代码也就不贴了,因为我是会将其用spring注入的。不过了解还是先写了一个redis的工具类。
这个就和memcached的工具类很像,有个像连接池一样的东西,在加上初始化连接池进行存取数据的方法就行。
此外,不同的一点是多了一个序列化的工具类,执行过程和DES加密有点像,先对数据进行序列化方法操作,在写了一个反序列化的方法,获取数据。而memcached只是让实体类进行序列化了,具体方法操作应该是在内部进行的,但是redis是写出来,通过调用方法进行实现的。
还有有个转化为字符这样的操作。
对两个工具了写了个测试类:
整个过程还是通过set添加数据,然后get到数据。
操作数据库建立了一个学员们为“Jack”的一条数据,然后对其进行序列化。serialize()就是序列化工具类的序列化方法。可以看一下序列化后的数据(通过redis-cli中可以看到):
"st"就是我接受这个数据的变量名,不过是已经反序列化以后的数据,上面最后一个测试方法中可以看出来,我输出了st,他是一条student对象的数据。因为我只给了名字字段一个值,所以其余的都是空值。
当然我也输出了st对象的name属性,就是我们输入的“Jack”。
明天计划的事情:
压测完有redis的JSP和JSON接口,速度够快的话就可以结束任务六了。
遇到的问题:
每次下载都会遇到很多很多的小问题,要不是使用上的,要不就是配置上的,不过只要不是很非主流的工具,直接百度问题,都会解决的。
由于今天进行了太多次这样的操作,所以差不多都忘了,再说都是小问题,好比怎么设置密码,怎么进入正确的路径打开我们需要操作的文件这类的问题,所以还是百度万岁,多用几次就熟练了。
收获:
1.Redis:
(1)Redis与其他key-value缓存产品有一下三个特点:
1)Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
2)Redis不仅仅支持简单的key-value类型的数据,同时还提供list, set,zset,hash等数据结构的存储。
3)Redis支持数据备份,即master-slave模式的数据备份。
(2)安装
主要就是看教程就行了。然后redis.conf有默认配置参数,大概差不多,就几个不一样的,我也就没改,比较资料不权威,出问题后在配置吧!
(3)命令
除了安装命令以为,键的命令和字符串命令也是用使用到了。就现在操作很简单,先set再get,不要就del。
唯一一个用错的命令,上面第一个测试写的“sadd”是属于集合命令,添加一个成员。是测试完以后,在cli中用get没调出后发现的。
sunion key:返回所有给定集合的并集。
所以其实命令也没有用对,但成员就一个,所以还是返回出来了(再次证明有些资料还是尝试使用,除非自己懂原理)
相对正确命令:
smembers key:返回所有集合成员
(4)其他
其余还没用到。教程里面都有,以后可以学。
不过在搜上面用错命令的时候,有的答案是好像需要修改方法的设定。因为我们是字符的形式,所以在set数据时,选择的方法应该是byte的,而不是String的。idea里面是有提示的,也算事提前预防坑吧。
评论