redis的几种应用场景

rebis的使用场景

1. 作为缓存

  • 缓存就是数据交换的缓冲区(称作:Cache),当某一硬件要读取数据时,会首先从缓存汇总查询数据,有则直接执行,不存在时从内存中获取。由于缓存的数据比内存快的多,所以缓存的作用就是帮助硬件更快的运行。
  • 缓存往往使用的是RAM(断电既掉的非永久存储),所以在用完后还是会把文件送到硬盘等存储器中永久存储。电脑中最大缓存就是内存条,硬盘上也有16M或者32M的缓存。
  • 高速缓存是用来协调CPU与主存之间存取速度的差异而设置的。一般CPU工作速度高,但内存的工作速度相对较低,为了解决这个问题,通常使用高速缓存,高速缓存的存取速度介于CPU与主存之间。系统将一些CPU在最近几个时间段经常访问的内容存在高速缓存,这样就在一定程度上缓解了由于主存速度低造成的CPU“停工待料”的情况。
  • 缓存就是把一些外存上的数据保存在内存上而已,为什么保存在内存上,我们运行的所有程序里面的变量都是存放在内存中的,所以如果想将值放入内存上,可以通过变量的方式存储。在JAVA中一些缓存一般都是通过Map集合来实现的。
    • 缓存在不同的场景下,作用是不一样的具体举例说明:
      • 操作系统磁盘缓存 ——> 减少磁盘机械操作。
      • 数据库缓存——>减少文件系统IO。
      • 应用程序缓存——>减少对数据库的查询。
      • Web服务器缓存——>减少应用服务器请求。
      • 客户端浏览器缓存——>减少对网站的访问。

1.1 为什么使用缓存

​ (1)提高性能:缓存查询速度必数据库查询速度快(内存vs硬盘)

​ (2)提高并发能力:缓存分担了部分请求,支持更高的并发

1.2 什么样的数据适合放入到缓存中

​ 热点数据

​ 修改频率比较低

​ 安全系数低的

缓存的原理:

怎么使用缓存:

(1)搭建一个springboot+mp的工程

(2)引入redis相关的依赖

(3)配置redis

(4)service代码

2. redis作为分布式锁

2.1代码实现

表示:

  • 先从Redis中读取stock的值,表示商品的库存
  • 判断商品库存是否大于0,如果大于0,则库存减1,然后再保存到Redis缓存中里面去,否则就提示“库存不足”
package com.hong.service.impl;

import com.hong.dao.StockDao;
import com.hong.entity.Stock;
import com.hong.service.StockService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * @Author hongCheng
 * @Date 2021/4/16 15:39
 * @Version 1.0
 */
@Service
public class StockServiceImpl implements StockService {
   

    @Resource
    private StockDao stockDao;

    @Override
    public String findById(Integer productId) {
   
        //根据id查询stock信息
        Stock stock = stockDao.selectById(productId);
        if (stock.getNum() > 0) {
   
            //修改数量,数量-1
            stock.setNum(stock.getNum() - 1);
            //根据获取到的stock对象,再根据id修改数量
            stockDao.updateById(stock);
            System.out.println("库存剩余数量:" + stock.getNum());
            return "库存减少成功";
        }
        return "库存不足";
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值