`
dinguangx
  • 浏览: 245633 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[JShop]开源电子商务系统jshop的系统缓存实现

阅读更多

前言

jeeshop中通过SystemManager管理了大量的缓存数据,来提升系统的性能,但这些缓存数据全部都是存放于内存中的,无法满足特定场景的数据更新(如集群环境)。JShop对jeeshop的缓存机制进行了扩展,提供CacheProvider来辅助SystemManager管理这些缓存数据,通过CacheProvider,可以把缓存存放在内存,ehcache,redis,memcached等各种不同的容器中,从而实现高度可定制的缓存管理机制。

CacheProvider

JShop中提供了三种不同类型的CacheProvider,分别为SimpleCacheProvider,EhcacheCacheProviderRedisCacheProvider, 分别使用内存,ehcache和redis来管理缓存数据. 开发者可以方便地定制自己的CacheProvider,来实现对缓存的管理。

CacheProvider接口定义

public interface CacheProvider {
    /**
     * 放入cache中
     * @param key
     * @param cacheObject
     */
    public void put(String key, Serializable cacheObject);

    /**
     * 获取放在cache中的内容
     * @param key
     * @return
     */
    public Serializable get(String key);

    /**
     * 清除cache中对应的值
     * @param key
     */
    public void remove(String key);

    /**
     * 清除所有的cache
     */
    public void clear();
}

CacheProvider与SystemManager配置

Jshop的缓存机制配置位于spring/applicationContext-cache.xml, 缓存配置示例如下:

    <bean id="systemManager" class="net.jeeshop.core.front.SystemManager">
        <property name="cacheProvider" ref="ehcacheCacheProvider"/>
    </bean>

    <bean id="ehcacheCacheProvider" class="net.jeeshop.core.cache.EhcacheCacheProvider">
        <property name="configLocation" value="classpath:ehcache.xml"></property>
        <property name="cacheName" value="eternalCache"/>
    </bean>

SimpleCacheProvider

SimpleCacheProvider内部通过Map来将所有缓存数据存放在内存中,所以相对简单,并会占用较多的内存资源,可以在一般的小型应用中使用,它的使用不需要其他的配置信息,只需要在配置文件中注入到systemManager即可,如:

    <bean id="systemManager" class="net.jeeshop.core.front.SystemManager">
        <property name="cacheProvider" ref="simpleCacheProvider"/>
    </bean>

    <!-- cache provider -->
    <bean id="simpleCacheProvider" class="net.jeeshop.core.cache.SimpleCacheProvider"/>

EhcacheCacheProvider

EhcacheCacheProvider通过ehcache管理缓存数据,使用它需要提供两个属性: configLocation: ehcache配置文件路径 cacheName : 所用的Cache名称(这里需要配置cache为永不过期,即eternal=true) 示例:

    <bean id="ehcacheCacheProvider" class="net.jeeshop.core.cache.EhcacheCacheProvider">
        <property name="configLocation" value="classpath:ehcache.xml"></property>
        <property name="cacheName" value="eternalCache"/>
    </bean>

RedisCacheProvider

EhcacheCacheProvider通过redis管理缓存数据,使用它需要提供Redis相关的配置信息,如数据源,连接池等。 相关的配置位于conf.properties,如下:

##redis配置##
redis.ip=localhost
redis.port=6379
redis.password=
redis.pool.maxIdle=200
redis.pool.testOnBorrow=true

完整的spring配置信息如下:

    <bean id="redisCacheProvider" class="net.jeeshop.core.cache.RedisCacheProvider">
        <property name="redisTemplate" ref="redisTemplate"/>
    </bean>

    <bean id="jedisConnectionFactory"
          class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
        <property name="hostName" value="${redis.ip}"/>
        <property name="port" value="${redis.port}"/>
        <property name="password" value="${redis.password}"/>
        <property name="poolConfig" ref="jedisPoolConfig"/>
    </bean>
    <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
        <property name="connectionFactory" ref="jedisConnectionFactory"/>
    </bean>
    <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <!--<property name="maxActive" value="${redis.pool.maxActive}"/>-->
        <property name="maxIdle" value="${redis.pool.maxIdle}"/>
        <!--<property name="maxWait" value="${redis.pool.maxWait}"/>-->
        <property name="testOnBorrow" value="${redis.pool.testOnBorrow}"/>
    </bean>
0
0
分享到:
评论

相关推荐

    Jshop开源小程序商城系统 v3.0.0.zip

    Jshop开源小程序商城系统 v3.0.0 是一个专为电商行业设计的全面解决方案,旨在帮助企业或个人快速搭建自己的在线购物平台。该系统的核心特性包括但不限于:微信小程序支持、多用户管理、商品分类与展示、订单处理、...

    PHP实例开发源码—Jshop开源小程序商城系统.zip

    【PHP实例开发源码—Jshop开源小程序商城系统】是一个基于PHP编程语言的开源电子商务解决方案,专为构建微信小程序商城而设计。这个系统允许开发者快速搭建一个功能齐全、灵活定制的小程序电商平台,满足商家在线...

    基于PHP的Jshop开源小程序商城系统.zip

    【标题】"基于PHP的Jshop开源小程序商城系统"是一个以PHP编程语言为基础的电子商务解决方案,专门用于构建微信小程序或类似的小程序应用。这个系统的特点是开放源代码,允许开发者根据自身需求进行定制和扩展。 ...

    基于PHP的Jshop开源小程序商城系统源码.zip

    【标题】"基于PHP的Jshop开源小程序商城系统源码"揭示了这是一个使用PHP编程语言开发的开源电子商务解决方案,特别设计用于构建微信小程序的在线商店。Jshop商城系统旨在为商家提供一个便捷、灵活的平台,以便他们...

    PHP实例开发源码-Jshop开源小程序商城系统.zip

    【PHP实例开发源码-Jshop开源小程序商城系统】是一个基于PHP语言实现的电子商务解决方案,它专为微信小程序设计,提供了一套完整的线上购物平台。在这个压缩包中,开发者可以找到Jshop系统的源代码,这对于学习PHP...

    Jshop B2C商城系统

    在互联网技术日新月异的今天,电子商务已经成为商业活动的重要组成部分。其中,B2C(Business-to-Consumer)电商平台以其便捷、高效的特性深受消费者喜爱。Jshop B2C商城系统,作为一款基于SpringMVC框架的开源电商...

    【Jshop小程序商城 v2.4.0】开源电商系统+一套前端代码发布多个平台+五端合一

    shop小程序商城,是一款开源的电商系统,包含微信小程序、支付宝小程序、APP、公众号和H5端,为大中小企业提供移动电子商务优秀的解决方案。 后台采用Thinkphp5.1框架开发,执行效率、扩展性、稳定性值得信赖。并且...

    jshop2任务规划

    JSHOP2是一种基于Java语言的高级规划系统,它是SHOP2(Simple Hierarchical Ordered Planner)的一个实现版本。SHOP2以及其前身SHOP的算法最初是由Dana S. Nau教授设计的,并由SHOP研究小组进行实现、维护和更新。要...

    Jshop小程序商城,是一款开源的支持可视化布局的电商系统

    Jshop小程序商城,是一款开源的支持可视化布局的电商系统,包含微信小程序、支付宝小程序、APP、公众号、H5端、PC端、抖音小程序、今日头条小程序、皮皮虾小程序、西瓜视频小程序,为大中小企业提供移动电子商务优秀...

    最好用的开源b2c电商系统java版

    【标题】:“最好用的开源B2C电商系统Java版”指的是基于Java语言开发的、专用于商业对消费者(Business-to-Consumer)电子商务平台的开源软件。这种系统通常包括前端展示、购物车、订单处理、支付接口、库存管理等...

    开源Jshop微信小程序商城源码1.1版

    开源的Jshop微信小程序源码1.1...Jshop小程序商城,是一款开源的电商系统,为中小企业提供移动电子商务解决方案。后台采用Thinkphp5.1框架开发,执行效率、扩展性、稳定性值得信赖,前台H5采用VUE开发,增加用户体验。

    开源Jshop小程序商城 v2.0.5.zip

    Jshop小程序商城,是一款开源的电商系统,为中小企业提供移动电子商务解决方案。后台采用Thinkphp5.1框架开发,执行效率、扩展性、稳定性值得信赖,前台H5采用VUE开发,增加用户体验。 Jshop小程序商城关于开源 这...

    关于ostocy-jshop系统的商品体系结构说明文档

    在IT行业中,构建一个高效、灵活的商品管理系统是电子商务平台的核心任务之一。ostocy-jshop系统作为一个专业的电商解决方案,其商品体系结构设计至关重要。本文将深入探讨该系统如何实现商品管理的高效运作,并结合...

    开源商城Jshop的后台多页签功能

    开源商城Jshop是一款深受开发者喜爱的电子商务平台,其强大的功能和灵活的可定制性使得它在众多开源商城系统中脱颖而出。在Jshop的后台管理界面,多页签功能是一项非常实用的设计,它允许管理员在同一浏览器窗口内...

    jshop3完美的界面

    10. **性能优化**:为了处理高并发和大数据,jshop3可能采用了缓存技术(如Redis)、负载均衡策略、数据库优化等手段,以保证系统的稳定运行和快速响应。 综上所述,jshop3是一个全方位的电商解决方案,它融合了...

    JSHOP2.zip

    JSHOP2是一款开源的基于规划的推理引擎,专门用于解决复杂的任务规划问题。它采用了高级任务网络(HTN)方法,这是一种将任务分解为子任务的高级规划技术。HTN规划器能够处理任务的分解和组合,使得复杂的任务可以...

    Jshop小程序商城基于Thinkphp5.1框架开发

    Jshop小程序商城,是一款开源的电商系统,包含微信小程序、支付宝小程序、APP、公众号、H5端、PC端、抖音小程序、今日头条小程序、皮皮虾小程序、西瓜视频小程序,为大中小企业提供移动电子商务优秀的解决方案。...

    JSHOP2规划器下载

    JSHOP2的核心在于将规划问题分解为一系列有序的操作步骤,从而帮助智能体实现预定目标。 **1. 结构化规划理论基础** JSHOP2是基于Shanahan提出的SHOP(Situation, Operator, and State Hierarchy Planner)规划系统...

    jshop2-master.zip

    JShop2是一个电商系统,它基于Java技术栈构建,提供了一套功能丰富的电子商务解决方案,包括商品管理、订单处理、支付集成、用户管理等核心模块。 【压缩包子文件的文件名称列表】"jshop2-master" 这个文件名可能...

Global site tag (gtag.js) - Google Analytics