发表于: 2018-01-29 14:15:34
1 752
今天完成的事情:
1.完成了redis和spring的整合。
我的妈呀,终于是完成了,是真的难受。先说说在整合过程中遇到的问题吧,卡了一天的问题:
启动tomcat的时候无法启动,配置文件什么的都没有任何报错,启动报错无法加载Redis的某一个类,于是我查看配置文件,发现是可以访问的到的,然后查看了一下maven的依赖树,发现我导入的spring-data-redis的jar包整个红了,也就是说整个冲突了。然后就是一番各种百度,但是然并卵,不能解决我的问题,于是请教各位师兄,最后志荣师兄给了点建议,让我按照maven仓库的推荐依赖来进行更换jar包,于是我按照这个说法,又忙活了半天之后,终于将问题解决了。。。是真的崩溃。在这里记录一下吧,也算是redis的大坑。
在使用redis的时候一定要按照maven仓库推荐的jar版本来,在这里演示一下:
首先在maven仓库搜索
Spring Data Redis
如图:
然后点击你想使用的版本,我这用的是1.6.1,点击1.6.1,如图:
然后是重点:将页面下拉,会出现推荐配置:
可以看到上面的推荐配置吧?
我最后是按照最左边的配置统一搞的:
<!-- spring版本号 -->
<spring.version>4.1.7.RELEASE</spring.version>
然后还有一个slf-4j的jar包也要改:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
然后都改完之后的依赖树:
原来这老小子都是红的,改完了之后好了。然后给模型层加上序列化接口,加上redis缓存:
public class Pros implements Serializable {
private int id;
private String picture;
private String title;
private String detail;
上面是给模型层加接口,下面是家缓存:
@Service
public class ProsServiceImpl implements ProsService {
@Autowired
public PageDao pageDao;
@Autowired
public RedisCacheConfig redisUtil;
public List<Pros> getAllPros(){
List<Pros> pross;
if (redisUtil.get("pross") != null){
pross = (List<Pros>)redisUtil.get("pross");
System.out.println("从缓存中取到的哦");
return pross;
}else{
pross = pageDao.getAllPros();
redisUtil.set("pross",pross);
System.out.println("从数据库取到的哦");
return pross;
}
}
然后运行,结果图:
成功!!!!!!
所以,使用redis的时候一定要注意这个依赖的版本限制!!!!!!!
好了,整合完毕,接下来就是压测了。
2.首先在服务器安装redis,用的wget命令:
第二部分:服务器端启动,默认端口号6379
,
然后将本地项目打包上传,开始访问:
居然没毛病,惊悚。一开始没安装redis的时候访问是出错的,无法获得redis连接,现在居然这么轻松就弄好了?????
3.那就开始压测吧:
老规矩,100线程1s启动,循环2次,开始压测:
这样看不出什么了,我粘上没有缓存的数据:
可以看出来缓存还是有效的,然后对比一下Memcached和redis:
下面是Memcached的压测图:
可以看到没有什么太大的出入,我指的是90%的线附近。因为数据又波动,所以可以认为是相差不大。
4.接下来看到师兄搞了一个可视化工具,于是尝试着搞了一波:
然后我们为了实现远程连接redis需要做一些准备(为什么要远程连接?第一,我要在本地用RDM看redis状态;第二,一些需要调用远程服务器缓存的操作就需要远程连接了)
我们首先需要将redis.conf文件中的
然后还有什么更改端口啥的
接下来是设置密码
然后虽然这些操作做完,但是还是无法远程连接redis,因为redis有个保护模式,需要关闭
其实到这里的更改就已经可以,但是如果前台运行redis的话,我们服务器就没法干别的了,所以我们设置redis后台运行。
然后,我们使用命令
$redis-server redis.conf(如果redis-server你没有移动的话,注意redis.conf文件的位置)
就可以按照配置文件的设置启动redis了。
可以看到允许0.0.0.0这个ip访问
网络中0.0.0.0的IP地址表示整个网络,即网络中的所有主机
然后这块需要注意的是要开放阿里云的安全组啊!!!!!!!!!!!!!!!!
这就是登录成功的界面了,很舒服。
但是我在后续过程中发现,只有通过命令redis-server redis.conf来启动redis时这个工具才能连接redis。
5.接下来就是看看怎么完成任务的要求了。
分析了半天也没分析出个所以然来。。
有嗲你不太明白任务的要求。。
什么是tps稳定时的响应时长,那玩意一直在变化,怎么能获得呢?还有c要求,我今天模拟的时候线程设置很低才能达到要求,这就是任务的要求吗?迷昏,整不明白啊。
今天遇到的问题
就是redis的整合问题了。。狗东西是真的难料理,不过好在解决了。
今天的收获
以上,还顺带收获了写其他的东西,可视化工具和redis的jar包搭配。
明天计划的事情
完成任务六吧。。
评论