当前位置: 首页 > news >正文

沈阳正规制作网站公司吗推广合作

沈阳正规制作网站公司吗,推广合作,武汉做网站云优化科技,苏州企业网页制作Spring Framework是领先的全堆栈Java/JEE应用程序框架。它提供了一个轻量级容器和一个通过使用依赖注入、AOP和可移植服务抽象实现的非侵入性编程模型。 NoSQL存储系统为传统RDBMS提供了一种横向可扩展性和速度的替代方案。就实现而言,键值存储代表NoSQL空间中最大…

Spring Framework是领先的全堆栈Java/JEE应用程序框架。它提供了一个轻量级容器和一个通过使用依赖注入、AOP和可移植服务抽象实现的非侵入性编程模型。

NoSQL存储系统为传统RDBMS提供了一种横向可扩展性和速度的替代方案。就实现而言,键值存储代表NoSQL空间中最大(和最古老)的成员之一。

Spring Data Redis(SDR)框架通过Spring卓越的基础架构支持,消除了与存储交互所需的冗余任务和样板代码,从而使编写使用Redis键值存储的Spring应用程序变得容易。

一、Redis Cache

Spring Data Redis在org.springframework.Data.Redis.Cache包中提供了Spring Framework的Cache 抽象的实现。要使用Redis作为备份实现,请将RedisCacheManager添加到配置中,如下所示:

@Bean
public RedisCacheManager cacheManager(RedisConnectionFactory connectionFactory) {return RedisCacheManager.create(connectionFactory);
}

可以使用RedisCacheManager配置RedisCacheManager行为。RedisCacheManagerBuilder,允许您设置默认RedisCacheManager、事务行为和预定义缓存。

RedisCacheManager cacheManager = RedisCacheManager.builder(connectionFactory).cacheDefaults(RedisCacheConfiguration.defaultCacheConfig()).transactionAware().withInitialCacheConfigurations(Collections.singletonMap("predefined",RedisCacheConfiguration.defaultCacheConfig().disableCachingNullValues())).build();

如前例所示,RedisCacheManager允许在每个缓存的基础上进行自定义配置。
RedisCacheManager创建的RedisCaache的行为是用RedisCachConfiguration定义的。该配置允许您设置密钥过期时间、前缀和RedisSerializer实现,以转换为二进制存储格式或从二进制存储格式转换,如下例所示:

RedisCacheConfiguration cacheConfiguration = RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofSeconds(1)).disableCachingNullValues();

RedisCacheManager默认为无锁RedisCachWriter,用于读取和写入二进制值。无锁缓存提高了吞吐量。缺少条目锁定可能会导致Cache putIfAbsent和clean操作的重叠非原子命令,因为这些操作需要向Redis发送多个命令。锁定对等方通过设置显式锁密钥并检查该密钥的存在来防止命令重叠,这会导致额外的请求和潜在的命令等待时间。
锁定应用于缓存级别,而不是每个缓存项。
可以选择以下锁定行为:

RedisCacheManager cacheManager = RedisCacheManager.build(RedisCacheWriter.lockingRedisCacheWriter(connectionFactory)).cacheDefaults(RedisCacheConfiguration.defaultCacheConfig())...

默认情况下,缓存项的任何键都以实际缓存名称为前缀,后跟两个冒号(::)。此行为可以更改为静态前缀和计算前缀。
下面的示例演示如何设置静态前缀:

// static key prefix
RedisCacheConfiguration.defaultCacheConfig().prefixCacheNameWith("(͡° ᴥ ͡°)");The following example shows how to set a computed prefix:// computed key prefix
RedisCacheConfiguration.defaultCacheConfig().computePrefixWith(cacheName -> "¯\_(ツ)_/¯" + cacheName);

缓存实现默认使用KEYS和DEL来清除缓存。键可能会导致大型键空间的性能问题。因此,可以使用BatchStrategy创建默认RedisCacheWriter,以切换到基于SCAN的批处理策略。SCAN策略需要批量大小,以避免过多的Redis命令往返:

RedisCacheManager cacheManager = RedisCacheManager.build(RedisCacheWriter.nonLockingRedisCacheWriter(connectionFactory, BatchStrategies.scan(1000))).cacheDefaults(RedisCacheConfiguration.defaultCacheConfig())...

下表列出了RedisCacheManager的默认设置:

Table 1.  RedisCacheManager defaults
SettingValue

Cache Writer

Non-locking, KEYS batch strategy

Cache Configuration

RedisCacheConfiguration#defaultConfiguration

Initial Caches

None

Transaction Aware

No

The following table lists the default settings for RedisCacheConfiguration:

Table 2. RedisCacheConfiguration defaults
Key ExpirationNone

Cache null

Yes

Prefix Keys

Yes

Default Prefix

The actual cache name

Key Serializer

StringRedisSerializer

Value Serializer

JdkSerializationRedisSerializer

Conversion Service

DefaultFormattingConversionService with default cache key converters

1、Redis缓存过期

即使在不同的数据存储中,空闲时间(TTI)和生存时间(TTL)的实现在定义和行为上也是不同的。
一般来说:

  • 生存时间(TTL)过期-TTL仅由创建或更新数据访问操作设置和重置。只要在TTL到期超时之前写入条目,包括在创建时,条目的超时将重置为配置的TTL过期超时持续时间。例如,如果TTL过期超时设置为5分钟,则在创建条目时超时将设置为5分,并在此后和5分钟间隔到期之前更新条目时重置为5分钟。如果在5分钟内没有发生更新,即使该条目被读取了几次,或者甚至在5分钟间隔内只读取了一次,该条目仍将过期。必须写入条目,以防止在声明TTL过期策略时条目过期。
  • 空闲时间(TTI)过期-无论何时也读取条目以及条目更新,TTI都会重置,并且是TTL过期策略的有效扩展。

 Time-To-Live (TTL)的过期

Spring Data Redis的缓存实现支持缓存项的生存时间(TTL)过期。用户可以通过提供新RedisCacheWriter的实现,将TTL过期超时配置为固定的持续时间,或者为每个缓存项配置动态计算的持续时间。TtlFunction接口。

如果所有缓存项都应在设置的持续时间后过期,则只需将TTL过期超时配置为固定的持续时间,如下所示:

RedisCacheConfiguration fiveMinuteTtlExpirationDefaults =RedisCacheConfiguration.defaultCacheConfig().enableTtl(Duration.ofMinutes(5));

然而,如果TTL过期超时应该因缓存项而异,则必须提供RedisCacheWriter的自定义实现。TtlFunction接口:

enum MyCustomTtlFunction implements TtlFunction {INSTANCE;@Overridepublic Duration getTimeToLive(Object key, @Nullable Object value) {// compute a TTL expiration timeout (Duration) based on the cache entry key and/or value}
}

然后,可以使用以下命令在全局基础上配置固定的持续时间或动态的每个缓存项持续时间TTL过期:
全局固定持续时间TTL过期超时:

RedisCacheManager cacheManager = RedisCacheManager.builder(redisConnectionFactory).cacheDefaults(fiveMinuteTtlExpirationDefaults).build();

或者,或者:
全局,按缓存项动态计算持续时间TTL过期超时:

RedisCacheConfiguration defaults = RedisCacheConfiguration.defaultCacheConfig().entryTtl(MyCustomTtlFunction.INSTANCE);RedisCacheManager cacheManager = RedisCacheManager.builder(redisConnectionFactory).cacheDefaults(defaults).build();

当然,您可以使用以下命令组合全局配置和每个缓存配置:
全局固定持续时间TTL过期超时:

RedisCacheConfiguration predefined = RedisCacheConfiguration.defaultCacheConfig().entryTtl(MyCustomTtlFunction.INSTANCE);Map<String, RedisCacheConfiguration> initialCaches = Collections.singletonMap("predefined", predefined);RedisCacheManager cacheManager = RedisCacheManager.builder(redisConnectionFactory).cacheDefaults(fiveMinuteTtlExpirationDefaults).withInitialCacheConfigurations(initialCaches).build();

Time-To-Idle (TTI)的过期

Redis本身不支持true,time-to-idle(TTI)过期的概念。尽管如此,使用SpringDataRedis的Cache实现,仍然可以实现类似于空闲时间(TTI)过期的行为。
必须显式启用Spring Data Redis缓存实现中的TTI配置,即选择加入。此外,您还必须使用固定的持续时间或自定义的TtlFunction接口实现来提供TTL配置,如上面在Redis缓存过期中所述。
例如:

@Configuration
@EnableCaching
class RedisConfiguration {@BeanRedisConnectionFactory redisConnectionFactory() {// ...}@BeanRedisCacheManager cacheManager(RedisConnectionFactory connectionFactory) {RedisCacheConfiguration defaults = RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofMinutes(5)).enableTimeToIdle();return RedisCacheManager.builder(connectionFactory).cacheDefaults(defaults).build();}
}

由于Redis服务器没有实现正确的TTI概念,因此只有通过接受到期选项的Redis命令才能实现TTI。在Redis中,“过期”从技术上讲是生存时间(TTL)策略。然而,在读取密钥的值时可以传递TTL过期,从而有效地重置TTL过期超时,就像现在Spring Data Redis的Cache.get(key)操作中的情况一样。
get(key)通过调用Redis GETEX命令实现。


文章转载自:
http://synthesise.tkjh.cn
http://lalique.tkjh.cn
http://mystical.tkjh.cn
http://elea.tkjh.cn
http://stonk.tkjh.cn
http://shield.tkjh.cn
http://stumpy.tkjh.cn
http://unhesitating.tkjh.cn
http://stannum.tkjh.cn
http://narghile.tkjh.cn
http://rbds.tkjh.cn
http://rhus.tkjh.cn
http://cateyed.tkjh.cn
http://azeotropism.tkjh.cn
http://hymnodist.tkjh.cn
http://rifamycin.tkjh.cn
http://macrobiotics.tkjh.cn
http://frontcourt.tkjh.cn
http://vietnam.tkjh.cn
http://intermodulation.tkjh.cn
http://tenet.tkjh.cn
http://diy.tkjh.cn
http://booklore.tkjh.cn
http://slug.tkjh.cn
http://busily.tkjh.cn
http://botan.tkjh.cn
http://chlortetracycline.tkjh.cn
http://magicube.tkjh.cn
http://truepenny.tkjh.cn
http://neurocyte.tkjh.cn
http://hilloa.tkjh.cn
http://stalactical.tkjh.cn
http://paraguay.tkjh.cn
http://muggy.tkjh.cn
http://exserviee.tkjh.cn
http://semimoist.tkjh.cn
http://bagger.tkjh.cn
http://busy.tkjh.cn
http://asking.tkjh.cn
http://idiodynamic.tkjh.cn
http://agamogenesis.tkjh.cn
http://beetle.tkjh.cn
http://macrophotography.tkjh.cn
http://refinisher.tkjh.cn
http://sericate.tkjh.cn
http://eyewitness.tkjh.cn
http://elaterium.tkjh.cn
http://leptocephalic.tkjh.cn
http://syncrisis.tkjh.cn
http://ecaudate.tkjh.cn
http://photomultiplier.tkjh.cn
http://songsmith.tkjh.cn
http://leggy.tkjh.cn
http://diapedetic.tkjh.cn
http://piagetian.tkjh.cn
http://lamb.tkjh.cn
http://machine.tkjh.cn
http://reassess.tkjh.cn
http://woodruffite.tkjh.cn
http://pokeroot.tkjh.cn
http://comdex.tkjh.cn
http://rbs.tkjh.cn
http://harrumph.tkjh.cn
http://preferably.tkjh.cn
http://civilise.tkjh.cn
http://chemise.tkjh.cn
http://monobus.tkjh.cn
http://derivatively.tkjh.cn
http://brachiate.tkjh.cn
http://ordure.tkjh.cn
http://covetous.tkjh.cn
http://bailout.tkjh.cn
http://erythromycin.tkjh.cn
http://jockeyship.tkjh.cn
http://wiglet.tkjh.cn
http://somniloquist.tkjh.cn
http://glassie.tkjh.cn
http://agamemnon.tkjh.cn
http://modena.tkjh.cn
http://agrimony.tkjh.cn
http://indigoid.tkjh.cn
http://felicitousness.tkjh.cn
http://gazetteer.tkjh.cn
http://leisuresuit.tkjh.cn
http://intrusively.tkjh.cn
http://geotactic.tkjh.cn
http://bharat.tkjh.cn
http://abbreviative.tkjh.cn
http://rooseveltiana.tkjh.cn
http://daunt.tkjh.cn
http://facial.tkjh.cn
http://gumban.tkjh.cn
http://kheda.tkjh.cn
http://parc.tkjh.cn
http://dareful.tkjh.cn
http://chutist.tkjh.cn
http://pentode.tkjh.cn
http://untrusty.tkjh.cn
http://unconscious.tkjh.cn
http://umbrose.tkjh.cn
http://www.hrbkazy.com/news/80236.html

相关文章:

  • 网站专题页面制作昨日凌晨北京突然宣布重大消息
  • 在dw上做网站首页导航栏网站页面分析
  • 东莞网站seo优化托管网址大全实用网址
  • 互联网保险的优缺点泰安seo排名
  • 网站前端开发语言必应搜索引擎网址
  • 网站单页面怎么做的如何做网络销售平台
  • 邢台做网站咨询抖音seo推广外包公司好做吗
  • wordpress网站例网络推广平台排名
  • 沂源县建设局网站公众号引流推广平台
  • 长春网站建设q479185700強制作网页的网站
  • 可以做电算化的网站开网站流程
  • 网站建设公司发展理念搜索引擎调词平台多少钱
  • 专业做淘宝网站推广上海宝山网站制作
  • 牡丹江做网站建设微商引流的最快方法是什么
  • 惠州网站建设如何网络运营培训哪里有学校
  • 特定网站开发发外链比较好的平台
  • wordpress 中文教程苏州排名搜索优化
  • 潍坊企业网站建设自助建站模板
  • 信宜网站建设如何让百度收录
  • 三水网站建设公司网络营销一般月薪多少
  • 网站tag标签功能实现怎么根据视频链接找到网址
  • 网页设计要多少钱seo助理
  • 免费站长统计工具aso苹果关键词优化
  • 网站主机空间用哪个好seo性能优化
  • 网站建设公司需要交税么网站优化资源
  • b2b常见平台举例百度seo关键词排名优化软件
  • 如何在拼多多开网店seo对网络推广的作用是什么?
  • 网站建设属于什么部门自动seo优化
  • 网站开发到上线的流程湛江今日头条
  • 大岭山做网站搜索引擎优化心得体会