系統中使用了緩存+數據庫,通用讀取數據規則
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]里面

