发表于: 2018-03-16 23:44:57
0 660
今日完成:
1. memcached实现分布式缓存
在本地用idea链接本地和服务器的memcached
服务器端要开放1121端口防火墙和阿里云安全组
xml文件配置:
<bean id="memcachedClientBuilder" class="net.rubyeye.xmemcached.XMemcachedClientBuilder"
p:connectionPoolSize="${memcached.connectionPoolSize}"><!--nio连接池大小,默认为1-->
<constructor-arg>
<list>
<!--memcached节点列表,可以在此配置多个服务器地址-->
<bean class="java.net.InetSocketAddress">
<constructor-arg>
<value>${memcached.server1.host}</value>
</constructor-arg>
<constructor-arg>
<value>${memcached.server1.port}</value>
</constructor-arg>
</bean>
<bean class="java.net.InetSocketAddress">
<constructor-arg>
<value>${memcached.server2.host}</value>
</constructor-arg>
<constructor-arg>
<value>${memcached.server2.port}</value>
</constructor-arg>
</bean>
</list>
</constructor-arg>
<constructor-arg>
<list>
<!-- 与servers对应的节点的权重,权重越高,连接数越多 -->
<value>${memcached.server1.weight}</value>
<value>${memcached.server2.weight}</value>
</list>
</constructor-arg>
properties文件:
#server1
memcached.server1.host=127.0.0.1
memcached.server1.port=11211
memcached.server1.weight=1
#server1
memcached.server2.host=47.95.248.39
memcached.server2.port=11211
memcached.server2.weight=1
ps:权重公约数只能为1,否则会浪费资源
使用 telnet+ip+端口 链接memdached
stats items 查看缓存信息
stats cachedump 1 0 查看制定STAT items 所有缓存数据
2. redis配置
xml配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
<bean id="redisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<!--p:maxIdle="${redis.maxIdle}" p:maxTotal="${redis.maxActive}"-->
<!--p:maxWaitMillis="${redis.maxWait}" p:testOnBorrow="${redis.testOnBorrow}" >-->
<property name="maxIdle" value="${redis.maxIdle}"/>
<property name="maxTotal" value="${redis.maxTotal}"/>
<property name="maxWaitMillis" value="${redis.maxWait}"/>
<property name="testOnBorrow" value="${redis.testOnBorrow}"/>
</bean>
<bean id="stringRedisSerializer"
class="org.springframework.data.redis.serializer.StringRedisSerializer">
</bean>
<bean id="jdkSerializationRedisSerializer"
class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer"/>
<bean id="redisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
p:host-name="${redis.host}" p:port="${redis.port}" p:password="${redis.pass}"
p:pool-config-ref="redisPoolConfig"/>
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"
p:connection-factory-ref="redisConnectionFactory" p:keySerializer-ref="stringRedisSerializer"
p:valueSerializer-ref="jdkSerializationRedisSerializer"/>
</beans>
properties文件:
redis.host=127.0.0.1
redis.port=6379
redis.pass=
redis.maxIdle=300
redis.maxTotal=600
redis.maxWait=1000
redis.testOnBorrow=true
使用redis替换memcached实现AOP
运行成功:
明日计划:
1. 对使用redis的项目压测
2. 理解jar包冲突及其解决办法
<p style="margin: 0 0 10px 24px" "="">3. xml读取多个配置文件方法
4. 整理
遇到的问题:
1. 使用redisTemplate的批量插入,在取出对象的时候如何进行强制转换为指定对象??
收获:
1. memdached分布式缓存简单实现
2. 实现redis并在AOP中使用
任务总结:
任务名称:JAVA=TASK5
成果链接:https://github.com/IT-xzy/Task/tree/master/Java/wuyiqiang/Task5-master
任务耗时:20180303-0313,共10天;未延期
技能脑图:附上个人和官方脑图(官方脑图在个人任务统计中可以看到)
任务总结:
a. 任务进度符合预期
b. 知识点基本都能涵盖到
c. 任务中遇到哪些疑难问题,最终是如何解决的,有哪些值得分享的收获
(1)首先是一开始任务五的时候不知道从何下手,直接去百度了DES算法,至今想起来仍然很难受,记得当时看那些东西,虽然看的明白是怎么个意思,但是让我用这个原理来加密的话,实在是做不到;于是在研究了半天之后点开了师兄的日报,突然发现一个信息!就是直接使用的加密工具类来进行加密,仅仅对加密的过程有所了解就行。这就是第一个问题:从这个问题中应该吸取的教训是做任务的时候应该带着目标来进行,而不是一看任务要求急吼吼地去百度了,还有就是和师兄的交流,如果能问一问师兄的话,能节省半天时间。
(2)碰到的第二个问题是就是生成了cookie,而我设置的cookie的有效期是一天,导致我访问任务要求的需要登录的页面时总是直接进去而不需要登录验证。我就以为是我的拦截器没有生效,后来憋不住了问的师兄,师兄让我先修改cookie的有效时间,然后换了一个浏览器来进行验证,这次果然成功了。
(3)第三个问题也是cookie有关的问题,我在拦截器中输出了日志,通过观察日志发现我每次登录拦截器会拦截到两次,经过曲师兄的帮助,推断出是因为之前的cookie有效期太长而我又新建了一个cookie,所以拦截了两次,在清除了浏览器的cookie后,正常运行。
评论