缓存设计【举例:基于session的购物车的设计】

简介: 缓存设计【举例:基于session的购物车的设计】

缓存设计【举例:基于session的购物车的设计】

  ---------------像servlet的单例模式原理差不多【它是依赖线程池作为容器的】

  ---------------图片的缓存设计的话,原理也是差不多【可以设计成依赖map集合作为容器】

 

一、基于session的购物车的设计【容器是session】

1、session:会话

2、购物车:domain(实例)对象

 

❀ ShoppingCartServlet


//处理
//        ShoppingCart cart = new ShoppingCart();【不对,这样每次请求都创建了一个购物车对象】咱是基于session的购物车
        ShoppingCart cart = (ShoppingCart) req.getSession().getAttribute("SHOPPINGCART_IN_SESSION");
        //这里需要缓存设计【就是第一次session中还没有放进购物车对象,咋就new一个放进去,     //然后第二次进行判断,非空,就直接使用session中的购物车】
        if(cart == null) {
            cart = new ShoppingCart();
            req.getSession().setAttribute("SHOPPINGCART_IN_SESSION", cart);
        }


✿ 总结:

单例模式的设计:其实就是先从缓存区中取,取出来是null【则是第一次,第一次就new 一个对象放到缓存区】,第二次,非null,直接使用缓存区的对象啰。

目录
相关文章
|
缓存 Java Maven
Java 使用LRUmap设计一个简单的缓存场景
Java 使用LRUmap设计一个简单的缓存场景
542 0
Java 使用LRUmap设计一个简单的缓存场景
|
XML 存储 缓存
设计一个缓存策略,动态缓存热点数据
写在前面,因为我们最近的大作业项目需要用到热点排行这个功能,因为我们是要使用Elasticsearch来存储数据,然后最初设想是在ES中实现这个热点排行的功能,但是经过仔细思考,在我们这个项目中使用ES来做热点排行是一个很蠢的方式,因为我们这只是一个很小的排行,所以最终我们还是使用Redis来实现热点排行
475 1
设计一个缓存策略,动态缓存热点数据
|
存储 缓存 NoSQL
微服务实践01--微服务管理11--缓存02--分级缓存设计
微服务实践01--微服务管理11--缓存02--分级缓存设计
347 0
微服务实践01--微服务管理11--缓存02--分级缓存设计
|
缓存 前端开发 大数据
如何设计一个缓存函数
在项目中你有优化过自己写过的代码吗?或者在你的项目中,你有用过哪些技巧优化你的代码,比如常用的函数防抖、节流,或者异步懒加载、惰性加载等。
125 0
如何设计一个缓存函数
|
缓存 NoSQL 网络协议
云数据库Redis如何缓存PHP的Session变量
云数据库Redis如何缓存PHP的Session变量
|
缓存 Java 数据库连接
第06篇:Mybatis缓存设计
MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制。本篇文章,小编将会在最短的时间呢,通过观察源码来深刻了解Mybatis的 一级二级缓存;然后在说如何定制。
164 0
|
存储 缓存 运维
|
消息中间件 缓存 NoSQL
高可用架构设计(3) -电商商品详情页缓存背景及框架说明
高可用架构设计(3) -电商商品详情页缓存背景及框架说明
414 0
高可用架构设计(3) -电商商品详情页缓存背景及框架说明
|
缓存 NoSQL Redis
一图看懂redis、缓存的设计
一图看懂redis、缓存的设计
167 0
一图看懂redis、缓存的设计
|
存储 缓存 Java
Spring注解缓存设计原理及实战
注解驱动的Spring Cache能够极大的减少我们编写常见缓存的代码量,通过少量的注释标签和配置文件,即可达到使代码具备缓存的能力,且具备很好的灵活性和扩展性。但是我们也应该看到,Spring Cache由于基于Spring AOP技术,尤其是动态的proxy技术,导致其不能很好的支持方法的内部调用或者非public方法的缓存设置,当然这些都是可以解决的问题。
488 0
Spring注解缓存设计原理及实战