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