1. Redis的使用场景说明:
- 系统级别基础数据(也就是大部分框架中SYS_开头的表的数据),查询数据的时候,在写入数据的同时将数据写入Redis缓存,这样可以尽量减少DB查询,让DB主要负责写数据。
- 尽量不使用 LEFt JOIN 等关联查询,缓存命中率不高,还浪费内存(原因请参考:https://blog.csdn.net/tonygor/article/details/49247075 和
https://www.baidu.com/link?url=9v5TkaAJ5RMZJ8vPR3S9VHmhtPeRAwAK-_HBb-2gZCRjYiuLkFaDKoaUBwnXo5VO4r7sAzxn5yDxQT1XvD9-djtbIm9uzyV8NolyCPIXiSe&wd=&eqid=9c4b02120000ed70000000065bf26f97)https://www.baidu.com/link?url=9v5TkaAJ5RMZJ8vPR3S9VHmhtPeRAwAK-_HBb-2gZCRjYiuLkFaDKoaUBwnXo5VO4r7sAzxn5yDxQT1XvD9-djtbIm9uzyV8NolyCPIXiSe&wd=&eqid=9c4b02120000ed70000000065bf26f97) - 多使用单表查询,缓存命中率最高
- 数据库 insert 、 update 、 delete 时,同步更新缓存数据
- 合理运用Redis数据结构(Redis一般性使用是用set/get方法,set key value的时候,value通常使用Json字符串,使用阿里的fastJson将数据转化为字符串,然后get key的时候,使用阿里的fastJson将数据转化为字符串转化为自己需要的数据结构)
- 对于访问量不大的项目,使用缓存只会增加项目的复杂度,不建议使用
2. 代码参考:
1)在Spring容器中填写Redis配置(以yml为例)
spring:
redis:
database: 0
host: localhost
port: 6379
password: # 密码(默认为空)
timeout: 6000ms # 连接超时时长(毫秒)
jedis:
pool:
max-active: 1000 # 连接池最大连接数(使用负值表示没有限制)
max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制)
max-idle: 10 # 连接池中的最大空闲连接
min-idle: 5