首页 > 其他分享 >《黑马旅游网》综合案例七 分类展示功能缓存

《黑马旅游网》综合案例七 分类展示功能缓存

时间:2023-02-25 11:44:20浏览次数:48  
标签:category categorys 缓存 redis 查询 jedis 旅游网 cs 黑马

对分类数据进行缓存优化

分析发现,分类的数据在每一次页面加载后都会重新请求数据库来加载,对数据库的压力比较大,而且分类的数据不会经常产生变化,所有可以使用redis来缓存这个数据

 

 

 CategoryServiceImpl实现类:

public class CategoryServiceImpl implements CategoryService {
    private CategoryDao categoryDao = new CategoryDaoImpl();

    @Override
    public List<Category> findAll() {
        //1、从redis中查询
        //获取jedis客户端
        Jedis jedis = JedisUtil.getJedis();
        //可以使用sortedset排序查询
        Set<String> categorys = jedis.zrange("category", 0, -1);
        List<Category> cs = null;
        //2、判断查询的集合是否为空
        if (categorys == null || categorys.size()==0){
            System.out.println("从数据库查询.....");
            //3、如果为空,需要从数据库查询,再将数据存入redis
            //从数据库查询
            cs = categoryDao.findAll();
            //将数据集合存储到redis中,category的key
            for (int i = 0; i < cs.size(); i++) {
                jedis.zadd("category",cs.get(i).getCid(),cs.get(i).getCname());
            }
        }else {
            System.out.println("从redis查询.....");
            //4、如果不为空,直接返回
            cs = new ArrayList<>();
            for (String name : categorys) {
                Category category = new Category();
                category.setCname(name);
                cs.add(category);
            }
        }
        return cs;
    }
}

标签:category,categorys,缓存,redis,查询,jedis,旅游网,cs,黑马
From: https://www.cnblogs.com/wsfj/p/17154060.html

相关文章

  • 《黑马旅游网》综合案例七 分类展示功能前后台
    分类数据展示功能分析:  代码实现:后台代码CategoryDao:publicinterfaceCategoryDao{/***查询所有*@return*/publicList<Categor......
  • 《黑马旅游网》综合案例六 BaseServlet抽取
    BaseServlet抽取减少Servlet的数量,现在是一个功能一个Servlet,将其优化成一个模块一个Servlet,相当于在数据库一张表对应一个Servlet,在Servlet中提供不同的方法,完成用户的......
  • SpringBoot23 - 缓存
    缓存​ 企业级应用主要作用是信息处理,当需要读取数据时,由于受限于数据库的访问效率,导致整体系统性能偏低。​ 应用程序直接与数据库打交道,访......
  • 《黑马旅游网》综合案例五 登录
    登录功能分析:  Servlet层:@WebServlet("/loginServlet")publicclassLoginServletextendsHttpServlet{protectedvoiddoPost(HttpServletRequestreques......
  • 《黑马旅游网》综合案例 三 注册功能后台
    Servlet代码实现UserDaopublicinterfaceUserDao{/***根据用户名查询用户信息*@paramusername*@return*/publicUserfindByU......
  • 《黑马旅游网》综合案例二 注册功能前台
    分析 表单校验代码实现1.前台效果1.表单校验2.异步(ajax)提交表单表单校验:1.用户名:单词字符,长度8到20位2.密码:单词字符,长度8到20位3......
  • 《黑马旅游网》综合案例(一)
    项目导入初始的项目:链接:https://pan.baidu.com/s/1Fd-6zx4KaX-F7M5IhCWlEw提取码:btan记得解压把给定的项目导入即可配置tomcat    项目启动启动之后技术......
  • 缓存穿透
    什么是缓存穿透?有特殊请求在查询一个不存在的数据,即:数据不存在于缓存也不存在于数据库导致每次请求都会穿透到数据库,缓存成了摆设,对数据库产生很大压力从而影响正常服务......
  • 序列号生成并发引发的synchronized、数据库隔离级别、myabits缓存等一些问题记录
    起因一个序列号产生方法发现有并发问题。修改这个方法中发生了一些错误,而这涉及到了一些的知识点,所以记录下。涉及点synchronized方法:如果此方法内包含数据库操作,且......
  • 【JS】JavaScript进阶 ES6 - 黑马视频笔记
    1.作用域作用域(scope)规定了变量能够被访问的“范围”,离开这个范围变量便不能被访问。分为:局部作用域、全局作用域。1.1局部作用域局部作用域分为:函数作用域、块作用......