系统中使用了缓存+数据库,通用读取数据规则
1、先从缓存读数据,如果有,直接返回数据;
2、如果没有,去数据库中读,然后再插入到缓存中,再返回数据

Mysql+Redis+Tomcat环境整合

1、修改PerfTeach/WEB-INF/classes/redis-config.properties
2、将redisServer修改为自己部署的redis ip:port
3、将redisFlag修改为true
4、重启tomcat
5、http://192.168.1.209:8080/PerfTeach/EnvTest?id=1
系统中使用了缓存+数据库,通用读取数据规则
1、先从缓存读数据,如果有,直接返回数据;
2、如果没有,去数据库中读,然后再插入到缓存中,再返回数据

每次取数据,先从Redis取,Redis中没有,再去mysql中取,取完过后会存储在Redis中,所以就实现了从缓存中取数据,效率大大提高

准备工作:

启动Redis

执行filshdb把之前的数据清掉

去掉主从关系,这样才能保证每个Redis分到的数据都不一样,否则会因为主从关系让两个Redis里面的数据一模一样

将从Redis下conf里面的slaveof行注释掉

启动mysql:执行service mysql start

新建一个名为perf_teach的数据库,并导入数据

1、修改PerfTeach/WEB-INF/classes/redis-config.properties

cd /home/apps/app-PerfTeach/PerfTeach/WEB-INF/classes/

redisServer :要连接的Redis的ip和端口号,此处不限制Redis的数量,写多少就会连多少,数据会均分到每个Redis中,如有1000条数据,有两个Redis,那么每个Redis都会分配500条数据
redisFlag :

如果设为True,就第一次读数据会从数据库读,以后都从Redis读

如果设为false,每次读数据都会从数据库读

所以改为

Redis连接mysql

一般连接数据库的配置文件名字都含有jdbc四个字,Redis的没有,是c3p0-config.xml

执行./startup.sh & tail -f ../logs/catalina.out重启tomcat,并查看启动日志

执行命令netstat -an|grep 端口号   可以查看是否被监听

2、将redisServer修改为自己部署的redis ip:port
3、将redisFlag修改为true
4、重启tomcat
5、http://192.168.1.209:8080/PerfTeach/EnvTest?id=1

查看Redis中有无数据

可以看到,数据存在6380中了

再看看di=2

数据分配到6370中了

Redis数据的分配规则:

有多少个Redis就会把数据库中的数据分成多少分,存到对应的Redis中,一般是按id来算,id与Redis的数量取余

规则:id%Redis数量=n,Redis按端口号升序排序,最小那个用0表示,就和取下标一样,数据会存放到Redis[n]里面

性能测试二十六:环境部署之Mysql+Redis+Tomcat环境整合的更多相关文章

  1. mysql进阶(二十六)MySQL 索引类型(初学者必看)

    mysql进阶(二十六)MySQL 索引类型(初学者必看)   索引是快速搜索的关键.MySQL 索引的建立对于 MySQL 的高效运行是很重要的.下面介绍几种常见的 MySQL 索引类型.   在数 ...

  2. VMware vSphere 服务器虚拟化之二十六 桌面虚拟化之View Persona Management

    VMware vSphere 服务器虚拟化之二十六 桌面虚拟化之View Persona Management 实验失败告终,启动VMware View Persona Management服务报10 ...

  3. 二十六、Jcreator使用初步

    摘自http://blog.csdn.net/liujun13579/article/details/7751464 二十六.Jcreator使用初步 Jcreator是一个小巧灵活的Java开发工具 ...

  4. 二十六个月Android学习工作总结【转】

    原文:二十六个月Android学习工作总结 1.客户端的功能逻辑不难,UI界面也不难,但写UI花的时间是写功能逻辑的两倍.     2.写代码前的思考过程非常重要,即使在简单的功能,也需要在本子上把该 ...

  5. Bootstrap <基础二十六>进度条

    Bootstrap 进度条.在本教程中,你将看到如何使用 Bootstrap 创建加载.重定向或动作状态的进度条. Bootstrap 进度条使用 CSS3 过渡和动画来获得该效果.Internet ...

  6. Web 前端开发人员和设计师必读精华文章【系列二十六】

    <Web 前端开发精华文章推荐>2014年第5期(总第26期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML5 ...

  7. 二十六:Struts2 和 spring整合

    二十六:Struts2 和 spring整合 将项目名称为day29_02_struts2Spring下的scr目录下的Struts.xml文件拷贝到新项目的scr目录下 在新项目的WebRoot-- ...

  8. WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[扩展篇]

    原文:WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[扩展篇] 通过<实现篇>对WSDL元素和终结点三要素的之间的匹配关系的介绍,我们知道了WSDL的Binding ...

  9. WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[实现篇]

    原文:WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[实现篇] 元数据的导出就是实现从ServiceEndpoint对象向MetadataSet对象转换的过程,在WCF元数据框 ...

随机推荐

  1. make_blobs

    一.make_blobs简介 scikit中的make_blobs方法常被用来生成聚类算法的测试数据,直观地说,make_blobs会根据用户指定的特征数量.中心点数量.范围等来生成几类数据,这些数据 ...

  2. 5、JDBC-元信息

    DatabaseMetaData:描述数据库的元数据对象 获取所有数据库 import org.junit.jupiter.api.AfterEach; import org.junit.jupite ...

  3. 部署支持 https 的 Nginx 服务

    通过 Certbot 为 nginx 开启https支持. 环境 CentOS 7.1 python2.x(这玩意系统里本来就有) 安装Nginx sudo yum install nginx -y ...

  4. 在 golang 中使用 Json

    序列化 序列化对象将使用 encoding/json 中的 Marshal 函数. 函数原型为:func Marshal(v interface{}) ([]byte, error) 以下是官网给出的 ...

  5. idea 插件的使用 进阶篇(个人收集使用中的)

    idea 插件的使用 进阶篇(个人收集使用中的) 恭喜你,如果你已经看到这篇文章,证明在idear使用上已经初有小成!那么就要向着大神进发了! 下边就是大神之路! 插件的设置 在 IntelliJ I ...

  6. C语言入门教程-(6)运算符

    1.运算符概述 运算符是一种编译器执行特定的数学或逻辑操作的符号.C语言提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 条件运算符 其他运算符 2.算术运算符 算术 ...

  7. python技巧 列表推导

    val = [expression for value in collection if condition] 等价于 val = []for value in collection:    if c ...

  8. configure编译选项

    1.rpath与rpath-link的区别 参考链接:http://blog.csdn.net/xph23/article/details/38157491 rpath 是 运行时候链接的库, rpa ...

  9. printf 函数的实现原理

    /* * ===================================================================================== * * Filen ...

  10. Database学习 - mysql 数据库 索引

    索引 索引在mysql 中也叫 '键',是存储引擎用来快速找到记录的一种数据结构.索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要. 索引优化应该是对查询性能优化 ...