电商项目高级篇06-缓存

打印 上一主题 下一主题

主题 1527|帖子 1527|积分 4581

缓存
流程图:

  1. data = cache.load(id);//从缓存加载数据
  2. If(data == null){
  3. data = db.load(id);//从数据库加载数据
  4. cache.put(id,data);//保存到 cache 中
  5. }
  6. return data;
复制代码
在我们的单体项目中可以用Map作为本地缓存,速度还很快。但是分布式项目。由于有多个服务。每次负载均衡到服务时,可能都不命中本地缓存,本地缓存不会在多个服务间收效。所以应该集身分布式缓存:比如redis
1、docker下启动redis

docker下载redis镜像
  1. docker pull redis
复制代码
创建镜像挂载

在redis文件夹下网络下载redis.conf文件
  1. wget http://download.redis.io/redis-stable/redis.conf
复制代码
去编辑redis.conf文件

注释后代表恣意ip访问

设置redis密码
appendonly yes:redis持久化
##末了挂载永世启动redis
  1. 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引入依靠
  1. <!--整合redis-->
  2.         <dependency>
  3.             <groupId>org.springframework.boot</groupId>
  4.             <artifactId>spring-boot-starter-data-redis</artifactId>
  5.         </dependency>
复制代码
2、application.yml设置redis设置信息

3、使用RedisTemplate操作redis
  1.         @Autowired
  2.     StringRedisTemplate stringRedisTemplate;
复制代码
  1.         @Test
  2.     public void testRedis(){
  3.         ValueOperations<String, String> ops = stringRedisTemplate.opsForValue();
  4.         ops.set("hello","world_"+ UUID.randomUUID().toString());
  5.         String hello = ops.get("hello");
  6.         System.out.println(hello);
  7.     }
复制代码

测试用例执行乐成,控制台输出redis的值。
查抄redis里是否有这个值

集成redis是乐成的

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大号在练葵花宝典

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表