标签: memorycache

何时使用虚拟属性或在Rails 3中的散列中传递数据

在我的应用程序中,我有一个Widget模型,一个Feature带有has_many的模型,通过WidgetFeature表关联.

根据要求,当我发送WidgetFeature对象时,我也应该将feature_name附加到它,用于相关的给定功能.
有两种方法:

  1. 发送对象时,请执行以下操作:
widget_feature_object[:feature_name] = feature_name_value
Run Code Online (Sandbox Code Playgroud)

然后我可以在我的控制器或视图中访问它,widget_feature_object[:feature_name]因为一个对象有(键,值)对,所以我也可以添加另一个.

2.制作feature_name一个虚拟属性WidgetFeature模型,然后创建getter和setter方法吧.

据我所知,当您想要创建与模型中实际存在的字段不同的不同视图时,您应该使用虚拟属性(例如,全名=名字+姓氏).
同样的事情也适合这里吗?

另外,Rails是否对对象进行了一些缓存,在使用虚拟属性时可能会有用,而不是在我使用第一种方法时?

每种方法的优缺点是什么,哪种方法最符合我的要求?非常感谢.

caching ruby-on-rails virtual-attribute ruby-on-rails-3 memorycache

4
推荐指数
1
解决办法
591
查看次数

.Net 4内存缓存类和用户会话

.Net 4.0中的新类MemoryCache似乎就像asp.net缓存一样.我的问题是:

MemoryCache是​​否等同于在Session Cache中为用户存储对象/值,而不是在aspx页面后面的代码中.

存储在服务器上的MemoryCache中的值是否可以访问网页事件?

asp.net-mvc c#-4.0 memorycache

4
推荐指数
1
解决办法
3771
查看次数

MemoryCache和每次调用多个WCF服务

MemoryCache如果我希望缓存数据在多个WCF服务中可见(使用PerCall实例模式),那么使用该类是一个有效的选项吗?

有两种情况:

  1. 这些服务都托管在IIS中的同一个应用程序中
  2. 服务托管在同一服务器上的不同IIS应用程序中

c# iis wcf caching memorycache

4
推荐指数
1
解决办法
3824
查看次数

如何在不实例化不必要的缓存对象的情况下填充MemoryCache?

的MemoryCache类公开了一个名为方法.AddOrGetExisting这是一个线程安全的方式来获得,如果存在,如果不存在添加.

NULL如果缓存的对象尚不存在,则返回此方法.我想我理解这个的价值,因为它向用户提供关于它在缓存中的存在的反馈.

我的缓存解析器看起来像这样:

private static T GetCachedCollection<T>(Guid cacheKey, Lazy<T> initializer)
{
    return (T) (MemoryCache.Default.AddOrGetExisting(cacheKey.ToString(), initializer.Value, _policy) ?? initializer.Value);
}
Run Code Online (Sandbox Code Playgroud)

我想要实现的是,除非需要,否则不会创建对象,如果需要,我不想构造它两次.

我担心的是,当我将.Value我的Lazy类型作为参数传递时,无论是否在缓存中找到该项,它都可以调用初始化程序.但是,如果我正确理解JIT,它将传递方法的委托而不是调用它.

我该如何实现这些目标:

  1. 如果对象初始值设定项已存在于缓存中,则不要调用它
  2. 如果它不在缓存中,则只调用一次.

.net c# lazy-evaluation memorycache

4
推荐指数
1
解决办法
800
查看次数

Xamarin形式:图像缓存

嗨,我正在尝试使用xamarin表单PCL构建应用程序。我正在实现使用默认图像的图像库。所有图像都在斑点上。我要下载图像并将该图像缓存在设备中,下载完成后,我需要用它替换默认图像。下次加载应用程序时,仅当图像不在缓存中时才下载图像。我没有任何用于图像缓存和从缓存加载图像的插件。我见过一个名为FFPLUGIN的插件,但是没有用。知道如何实施吗?图像训练

c# portable-class-library memorycache xamarin.forms

4
推荐指数
1
解决办法
7750
查看次数

MemoryCache-防止项目过期

在我的应用程序中,我使用MemoryCache,但是我不希望项目过期。因此项目被插入到与默认策略缓存,没有AbsoulteExpiration或者SlidingExpiration被设置。

最近,在最后一台高服务器上,我遇到了缓存问题,因为它返回空值代替期望值,并在之前插入到缓存中。事实证明,不仅合格的项目(如明确设置了到期日期的项目)都从缓存中删除。在内存压力下,超过CacheMemoryLimit和/或值时PhysicalMemoryLimit,MemoryCache也会删除其他元素。

如何预防呢?如何确保将元素设置为一次缓存后,可以再次从中安全地获取它?

我考虑过将设置PollingInterval为某个巨大的值,但这只会延迟潜在的问题(并且轮询间隔在文档中被称为最大时间,而不是确切时间或最小时间)。设置PhysicalMemoryLimitPercentage为100%并不能解决问题,因为它引用的是物理安装的内存,而不是整个可用虚拟内存。还是我错了,这确实会有所帮助吗?

.net c# caching polling memorycache

4
推荐指数
1
解决办法
2435
查看次数

Android 1.6+中的Android LruCache

我需要在Android 1.6+中使用LruCache(来自Android 3.1的api)

我使用支持LruCache的Android支持库v4(根据本手册http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html#memory-cache)但问题是我得到了NoClassDefNotFoundError一直都是.我在我的项目中包含support.v4库(在其他活动中我使用ViewPager ...)

任何人都知道为什么会这样?

android memorycache

3
推荐指数
1
解决办法
2148
查看次数

易失性和缓存行为

我读了
C后的volatile变量和Cache Memory

但我很困惑.

问题:
操作系统是否会自行处理或者
程序员必须以这样的方式编写程序,即变量不应该像缓存一样提到缓存,如声明变量为_Uncached.

关心
学习者

c linux multithreading volatile memorycache

3
推荐指数
1
解决办法
4242
查看次数

如何在asp.net核心中迭代MemoryCache?

IMemoryCache中没有可用的方法允许迭代每个缓存的项目.我的项目很小,我不想使用像Redis这样的其他选项.

namepsace    Microsoft.Extensions.Caching.Memory{
        public static class CacheExtensions
    {
        public static object Get(this IMemoryCache cache, object key);
        public static TItem Get<TItem>(this IMemoryCache cache, object key);
        public static TItem GetOrCreate<TItem>(this IMemoryCache cache, object key, Func<ICacheEntry, TItem> factory);
        [AsyncStateMachine(typeof(CacheExtensions.<GetOrCreateAsync>d__9<>))]
        public static Task<TItem> GetOrCreateAsync<TItem>(this IMemoryCache cache, object key, Func<ICacheEntry, Task<TItem>> factory);
        public static TItem Set<TItem>(this IMemoryCache cache, object key, TItem value);
        public static TItem Set<TItem>(this IMemoryCache cache, object key, TItem value, DateTimeOffset absoluteExpiration);
        public static TItem Set<TItem>(this IMemoryCache cache, object key, TItem value, TimeSpan …
Run Code Online (Sandbox Code Playgroud)

c# memorycache asp.net-core

3
推荐指数
2
解决办法
6937
查看次数

.net core 6.0 web api应用程序启动时如何加载数据?

我想将文件数据加载到program.cs(.net core 6.0)上的缓存中,加载的数据将在许多服务中使用。

所以我输入builder.Services.AddMemoryCache();了源代码。

但是然后,我不知道如何使用那里的内存缓存(在program.cs中)。

在以前的版本中,通过Configure方法和IMemoryCache cache参数,我可以像下面的代码块一样使用内存缓存加载数据

public void Configure(IMemoryCache cache)
{
    cache.set(...);
    cache.get(...);
}
Run Code Online (Sandbox Code Playgroud)

我正在使用 .net core 6.0 Web api 进行开发。有谁知道如何在.net core 6.0中初始化program.cs上的数据?

c# memorycache asp.net-core asp.net-core-webapi

3
推荐指数
1
解决办法
4598
查看次数