问题标签 [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.
spring - spring-simple-memcache - ReadThroughSingleCache 的 Maven 依赖项
有人用过spring simple memcached吗?我无法获得确切的 Maven 依赖项和可用的存储库。code.google 页面 (http://code.google.com/p/simple-spring-memcached/) 上提到的依赖项提到了其他依赖项,但它不包括 Simple-spring-memcache 本身的 jar。
谢谢你们的帮助。
spring-mvc - 使用简单的spring memcached使命名空间无效
有没有人尝试过基于时间戳使 memcached 命名空间无效?例如,我需要一个 memcached 命名空间,它是托管我的 API 服务的 tomcat 服务器的时间戳。我需要注释我的方法调用,以便命名空间是一个变量(而不是一个常量),并且它包含服务器启动的时间戳。
那么每次服务器启动时,需要将该方法上的命名空间动态设置为服务器启动时间。
更新 - 我知道有一种使用 javaassist 和动态注释的迂回方法,但我想要一种更好的方法。
-戈茨
memcached - 如何在 simple-spring-memcached 中为同一个键对象指定不同的缓存键
我正在尝试使用spring-memcached
. 文档建议使用对象作为键,我需要在我的域类中有一个带有 @CacheKeyMethod 注释的方法。
但问题是我在不同场景中使用相同的域类,并且在每种情况下生成的密钥具有不同的逻辑。例如,User
其中一个场景的类要求键在city
and方面是唯一的gender
,但在另一种情况下,它要求在用户方面是唯一的email
,它本质上是您的查找所基于的。
虽然用户的电子邮件将决定城市和性别,所以我也可以在第一种情况下使用电子邮件作为键,但这意味着每个用户都有单独的缓存条目,而缓存的数据将相同,只要性别和城市相同,这有望大幅提高命中率(想想你可以期望有多少用户是来自班加罗尔的男性)。
有没有办法可以定义不同的键。如果生成密钥的逻辑可以从域类本身外部化,那就太好了。
我阅读了文档并发现某些东西称为CacheKeyBuilder
和/或CacheKeyBuilderImpl
可以解决问题,但我不明白如何继续。
编辑.. 好的..我有一个线索!CacheKeyBuliderImpl 所做的是,它调用 defaultKeyProvider 实例上的 generateKey 方法,该方法在提供的域类的方法上查找 @cachekeyannotation 并执行找到的方法以获取密钥。
因此,CacheKeyBuilderImpl
用自定义 Impl 替换 或用KeyProvider
你的替换 CacheKeyBuilderImpl 中的默认实现可能会解决问题……但是 keyprovider 引用是硬连线到 DefaultKeyProvider 的。
任何人都可以帮助我实现 CacheKeyBuilder(关于不同方法的作用;文档没有说明)以及如何注入它以代替通常的 CacheKeyBuilderImpl
caching - 关于spring memcached注解的singlecache、multicache和assigncache的区别
我试图理解 Simple Spring Memcached,但一直坚持下面提到的。
有什么区别:
- @ReadThroughSingleCache、@ReadThroughMultiCache 和 @ReadThroughAssignCache
- @UpdateSingleCache、@UpdateMultiCache 和 @UpdateAssignCache
- @InvalidateSingleCache、@InvalidateMultiCache 和 @InvalidateAssignCache
还有更新是如何工作的。如果我使用某个键对命名空间进行更新,它是否会执行同一命名空间中的所有 read*cache 方法并使用相同的键。如果是,那么它是否适用于多个服务器应用程序。
例如,在某个场景中,用户的积分(针对某事)被缓存 应用程序 1
在来自不同应用程序(可能是后台调度程序)的另一个场景中,调用以下方法:应用程序 2
我的问题是,如果命名空间(“userPoints”)最初有一个 userId(“1234”)的缓存条目为 50 个点,并且使用(“1234”,100)调用更新方法,那么缓存如何知道“1234”的条目必须更新为 100 分。
它应该使用返回值并用旧值更新它(然后需要更改返回类型),或者如果更新是“直写”,则应该使用 db 查找的直接逻辑调用读取方法,然后更新缓存...但是应用程序 2 如何通知应用程序 1 更新。
caching - 如何在简单的spring memcached中刷新所有缓存条目
这个问题参考了 Simple Spring memcached。
我有一个场景,其中使用 userId 作为键为用户缓存交易列表。现在,如果交易数据被更新,我需要刷新所有用户的缓存,因为这会影响所有用户的交易数据。如何使用 SSM 注释来实现这一点。invalidate*cache 和 update*cache 选项似乎使关键特定缓存条目无效/更新,而我需要清除整个缓存。
spring - 如何配置 Simple Spring Memcached 以使用 Couchbase
我正在开发一个 Spring MVC 应用程序,我想使用带有 Couchbase 后端的Simple Spring Memcached (SSM) 设置缓存。
我已经在本地设置了一个工作沙发库安装,带有一个“默认”的 memcache 存储桶。我可以在测试项目中连接和使用 Couchbase Java API。
但是,在我的 Spring MVC 项目中使用 SSM 注释时,我会遇到超时异常。我相当有信心问题出在我的 SSM 配置上:
请注意,它没有提及“默认”存储桶或任何身份验证参数。我还没有找到任何关于如何配置 SSM 以这种方式使用特定的 couchbase 存储桶的文档。
有什么帮助吗?
java - 如何使用 simple-spring-memcache 缓存集合或数组参数
我的项目使用了一个simple-spring-memcache来缓存一个服务方法,但是它不起作用,如下:
但我写它可以工作:
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 的用法是
amazon-elasticache - 如何将 simple-spring-memcached 与 AWS Auto Discovery 一起使用
如何将 simple-spring-memcached 库 (SSM) 与 AWS Elasti Cache Auto Discovery 功能结合使用?我们使用 spymemcached 作为客户端。
java - ssm simple-spring-memcached - 缓存写入不起作用
我直接使用SSMCache#put API 来获取缓存并更新密钥。
最初,我使用下面的 spring-cache 注释方法从缓存中读取了值。
然后更新“bean.count”字段并写回。
稍后,Spring 服务尝试读取缓存(CACHE_JOURNALS),但缓存中的“bean.count”的值没有更新,它是旧值(5348)。
我希望我调用正确的 API 来更新缓存元素。任何指针?