电商项目高级篇06-缓存
- 1、docker下启动redis
- 2、项目整合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 yes:redis持久化
##最后挂载永久启动redis
docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -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--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>
2、application.yml配置redis配置信息
3、使用RedisTemplate操作redis
@AutowiredStringRedisTemplate stringRedisTemplate;
@Testpublic void testRedis(){ValueOperations<String, String> ops = stringRedisTemplate.opsForValue();ops.set("hello","world_"+ UUID.randomUUID().toString());String hello = ops.get("hello");System.out.println(hello);}
测试用例执行成功,控制台输出redis的值。
检查redis里是否有这个值
集成redis是成功的