问题标签 [simple-spring-memcached]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1612 浏览

spring - spring-simple-memcache - ReadThroughSingleCache 的 Maven 依赖项

有人用过spring simple memcached吗?我无法获得确切的 Maven 依赖项和可用的存储库。code.google 页面 (http://code.google.com/p/simple-spring-memcached/) 上提到的依赖项提到了其他依赖项,但它不包括 Simple-spring-memcache 本身的 jar。

谢谢你们的帮助。

0 投票
1 回答
910 浏览

spring-mvc - 使用简单的spring memcached使命名空间无效

有没有人尝试过基于时间戳使 memcached 命名空间无效?例如,我需要一个 memcached 命名空间,它是托管我的 API 服务的 tomcat 服务器的时间戳。我需要注释我的方法调用,以便命名空间是一个变量(而不是一个常量),并且它包含服务器启动的时间戳。

那么每次服务器启动时,需要将该方法上的命名空间动态设置为服务器启动时间。

更新 - 我知道有一种使用 javaassist 和动态注释的迂回方法,但我想要一种更好的方法。

-戈茨

0 投票
1 回答
1349 浏览

memcached - 如何在 simple-spring-memcached 中为同一个键对象指定不同的缓存键

我正在尝试使用spring-memcached. 文档建议使用对象作为键,我需要在我的域类中有一个带有 @CacheKeyMethod 注释的方法。

但问题是我在不同场景中使用相同的域类,并且在每种情况下生成的密钥具有不同的逻辑。例如,User其中一个场景的类要求键在cityand方面是唯一的gender,但在另一种情况下,它要求在用户方面是唯一的email,它本质上是您的查找所基于的。

虽然用户的电子邮件将决定城市和性别,所以我也可以在第一种情况下使用电子邮件作为键,但这意味着每个用户都有单独的缓存条目,而缓存的数据将相同,只要性别和城市相同,这有望大幅提高命中率(想想你可以期望有多少用户是来自班加罗尔的男性)。

有没有办法可以定义不同的键。如果生成密钥的逻辑可以从域类本身外部化,那就太好了。

我阅读了文档并发现某些东西称为CacheKeyBuilder和/或CacheKeyBuilderImpl可以解决问题,但我不明白如何继续。

编辑.. 好的..我有一个线索!CacheKeyBuliderImpl 所做的是,它调用 defaultKeyProvider 实例上的 generateKey 方法,该方法在提供的域类的方法上查找 @cachekeyannotation 并执行找到的方法以获取密钥。

因此,CacheKeyBuilderImpl用自定义 Impl 替换 或用KeyProvider你的替换 CacheKeyBuilderImpl 中的默认实现可能会解决问题……但是 keyprovider 引用是硬连线到 DefaultKeyProvider 的。

任何人都可以帮助我实现 CacheKeyBuilder(关于不同方法的作用;文档没有说明)以及如何注入它以代替通常的 CacheKeyBuilderImpl

0 投票
1 回答
2250 浏览

caching - 关于spring memcached注解的singlecache、multicache和assigncache的区别

我试图理解 Simple Spring Memcached,但一直坚持下面提到的。

有什么区别:

  1. @ReadThroughSingleCache、@ReadThroughMultiCache 和 @ReadThroughAssignCache
  2. @UpdateSingleCache、@UpdateMultiCache 和 @UpdateAssignCache
  3. @InvalidateSingleCache、@InvalidateMultiCache 和 @InvalidateAssignCache

还有更新是如何工作的。如果我使用某个键对命名空间进行更新,它是否会执行同一命名空间中的所有 read*cache 方法并使用相同的键。如果是,那么它是否适用于多个服务器应用程序。

例如,在某个场景中,用户的积分(针对某事)被缓存 应用程序 1

在来自不同应用程序(可能是后台调度程序)的另一个场景中,调用以下方法:应用程序 2

我的问题是,如果命名空间(“userPoints”)最初有一个 userId(“1234”)的缓存条目为 50 个点,并且使用(“1234”,100)调用更新方法,那么缓存如何知道“1234”的条目必须更新为 100 分。

它应该使用返回值并用旧值更新它(然后需要更改返回类型),或者如果更新是“直写”,则应该使用 db 查找的直接逻辑调用读取方法,然后更新缓存...但是应用程序 2 如何通知应用程序 1 更新。

0 投票
1 回答
1644 浏览

caching - 如何在简单的spring memcached中刷新所有缓存条目

这个问题参考了 Simple Spring memcached。

我有一个场景,其中使用 userId 作为键为用户缓存交易列表。现在,如果交易数据被更新,我需要刷新所有用户的缓存,因为这会影响所有用户的交易数据。如何使用 SSM 注释来实现这一点。invalidate*cache 和 update*cache 选项似乎使关键特定缓存条目无效/更新,而我需要清除整个缓存。

0 投票
1 回答
1659 浏览

spring - 如何配置 Simple Spring Memcached 以使用 Couchbase

我正在开发一个 Spring MVC 应用程序,我想使用带有 Couchbase 后端的Simple Spring Memcached (SSM) 设置缓存。

我已经在本地设置了一个工作沙发库安装,带有一个“默认”的 memcache 存储桶。我可以在测试项目中连接和使用 Couchbase Java API。

但是,在我的 Spring MVC 项目中使用 SSM 注释时,我会遇到超时异常。我相当有信心问题出在我的 SSM 配置上:

请注意,它没有提及“默认”存储桶或任何身份验证参数。我还没有找到任何关于如何配置 SSM 以这种方式使用特定的 couchbase 存储桶的文档。

有什么帮助吗?

0 投票
1 回答
909 浏览

java - 如何使用 simple-spring-memcache 缓存集合或数组参数

我的项目使用了一个simple-spring-memcache来缓存一个服务方法,但是它不起作用,如下:

但我写它可以工作:

0 投票
1 回答
1332 浏览

java - memchache 不工作时如何处理代码(simple-spring-memcached)

感谢“simple-spring-memcached”中的“入门指南”,我设法使用指南中的“Spring 3.1”示例让 memcached 在我的项目中工作,我使用“spymemcached”作为提供者。当 memcached 服务器启动并运行时,一切正常。但是,当无法访问 memcache 服务器(故意关闭以进行测试)时,下划线代码不起作用并且应用程序不会执行,只是抛出运行时异常,说明无法连接到 memcache 服务器并发生超时。

但是,在这种情况下,我期望的是每次都执行目标方法,因为缓存无法访问,而不是完全阻塞执行路径。这可以使用简单的 spring memcache 吗?,有没有人有这方面的经验?我该如何解决这种情况,缓存层的任何异常都不需要干扰执行,只需调用目标方法作为后备。这就是我想要达到的目标。

我用'fallbackToNoOpCache'尝试了spring'CompositeCacheManager',但看起来simple-spring-memcached对此没有影响。

我所有的配置都与(spring 3.1)完全相似

https://code.google.com/p/simple-spring-memcached/wiki/Getting_Started

谢谢你的帮助

例如:我的@Cacheable 的用法是

0 投票
1 回答
3171 浏览

amazon-elasticache - 如何将 simple-spring-memcached 与 AWS Auto Discovery 一起使用

如何将 simple-spring-memcached 库 (SSM) 与 AWS Elasti Cache Auto Discovery 功能结合使用?我们使用 spymemcached 作为客户端。

0 投票
1 回答
651 浏览

java - ssm simple-spring-memcached - 缓存写入不起作用

我直接使用SSMCache#put API 来获取缓存并更新密钥。

最初,我使用下面的 spring-cache 注释方法从缓存中读取了值。

然后更新“bean.count”字段并写回。

稍后,Spring 服务尝试读取缓存(CACHE_JOURNALS),但缓存中的“bean.count”的值没有更新,它是旧值(5348)。

我希望我调用正确的 API 来更新缓存元素。任何指针?