国内设计网站公司网站,网站开发需要什么人,米拓网站建设,苏州平台公司电商项目高级篇06-缓存 1、docker下启动redis2、项目整合redis3、redis改造三级分类业务 缓存 流程图#xff1a;
data cache.load(id);//从缓存加载数据
If(data null){
data db.load(id);//从数据库加载数据
cache.put(id,data);//保存到 cache 中
}
return data;在我们… 电商项目高级篇06-缓存 1、docker下启动redis2、项目整合redis3、redis改造三级分类业务 缓存 流程图
data cache.load(id);//从缓存加载数据
If(data null){
data db.load(id);//从数据库加载数据
cache.put(id,data);//保存到 cache 中
}
return data;在我们的单体项目中可以用Map作为本地缓存速度还很快。但是分布式项目。由于有多个服务。每次负载均衡到服务时可能都不命中本地缓存本地缓存不会在多个服务间生效。所以应该集成分布式缓存比如redis
1、docker下启动redis
docker下载redis镜像
docker pull redis
创建镜像挂载
在redis文件夹下网络下载redis.conf文件
wget http://download.redis.io/redis-stable/redis.conf
去编辑redis.conf文件 注释后代表任意ip访问 设置redis密码
appendonly yesredis持久化
##最后挂载永久启动redis
docker run --restartalways --log-opt max-size100m --log-opt max-file2 -p 6379:6379 --name myredis -v /mydata/redis/redis.conf:/etc/redis/redis.conf -v /home/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass 123456
然后我们用rdm工具连上redis
2、项目整合redis
1、pom.xml引入依赖 !--整合redis--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency2、application.yml配置redis配置信息 3、使用RedisTemplate操作redis AutowiredStringRedisTemplate stringRedisTemplate;Testpublic void testRedis(){ValueOperationsString, String ops stringRedisTemplate.opsForValue();ops.set(hello,world_ UUID.randomUUID().toString());String hello ops.get(hello);System.out.println(hello);}测试用例执行成功控制台输出redis的值。
检查redis里是否有这个值 集成redis是成功的
3、redis改造三级分类业务
CategoryServiceImpl Autowiredprivate StringRedisTemplate redisTemplate;Overridepublic MapString, ListCatelog2Vo getCatalog() {// 1、获取缓存中的数据String catalog redisTemplate.opsForValue().get(catalog);if (StrUtil.isBlank(catalog)) {// 2、从数据库中获取数据MapString, ListCatelog2Vo catalogDb this.getCatalogDb();// 3、缓存数据redisTemplate.opsForValue().set(catalog, JSON.toJSONString(catalogDb));return catalogDb;}// 将缓存中的数据返回return JSON.parseObject(catalog,Map.class);}