草庐IT

carbon-cache

全部标签

caching - 重新启动时在 Redis(或其他缓存服务)中重新加载数据的最佳方法?

当Redis服务器发生故障并重启时,将数据重新加载到Redis中的最佳方式是什么?(我对Redis和内存数据库有点陌生)我分为三个部分,我将描述如下:生产者应用程序-更新SQL数据库并将SQL数据的子集写入Redis服务器Redis服务器-拥有SQL数据的重要子集消费者应用-需要快速查找Redis中的数据(目前不写入Redis或SQL数据库)我正在考虑的一些选项:将重新加载脚本放在Redis服务器中,以便它查询SQL数据库并在启动时重新加载自身在生产者应用中构建一个端点,消费者应用可以调用该端点,以在消费者应用注意到Redis服务器为空并已重新启动时通知生产者应用重新加载Redis完全

caching - 由同一应用程序的多个实例共享 redis 实例

我们被要求在使用redis的应用程序中实现缓存。应用程序应具有在启动时清除缓存并对其进行初始化的逻辑。但是,redis实例可以由应用程序的多个实例共享。例如应用程序X有两个实例X0和X1共享同一个redis实例。问题:对于多个实例,一个实例可能会尝试初始化缓存,而另一个实例正在清除缓存。两个问题1)如何确保在初始化缓存时,其他实例不会清除它。解决这个问题的一种方法是在redis中维护一个标志来检查它是否正在被清除或初始化。如果正在初始化缓存,请不要清除或重新初始化它。2)由多个应用程序实例共享redis实例是好的做法吗? 最佳答案

caching - Redis缓存中如何定义 “regions”?

在我们的项目中,我们使用蓝-绿部署。我们也在我们的项目中使用缓存。我想维护不同的区域以支持使用Redis缓存的蓝/绿部署。这个想法是在不影响生产事件实例的情况下支持蓝-绿部署。当我们部署到非生产端时,缓存区域应使用为该端创建或定义的区域。有人知道如何用redis实现它。 最佳答案 我尝试过很多不同的方法,但恕我直言Hazelcast做对了。它作为断路器的一部分内置,因此客户端将自动切换到所需的集群资源。 关于caching-Redis缓存中如何定义“regions”?,我们在StackO

caching - 应该使用内存 Db 中的哪个来缓存主要用于读取的树?

用例:我们有一个Trie数据结构,每天将被访问超过10万次。遍历这个trie(基于输入参数)并返回存储在叶节点的JSON。问题/关注点:最初,我尝试将此Trie存储在Redis中并使用LUA脚本执行遍历逻辑。但是,在执行时,LUA脚本会阻塞整个Redis服务器。因此,有时它会影响我的系统性能。问题:我有两个问题:缓存此Trie的最佳策略是什么,其中读取量很高,几乎没有任何更新。Redis是这个用例的最佳选择吗?如果没有,请提出建议。 最佳答案 我们的两个数据库系统eXtremeDB(闭源)和Perst(开源)都提供PatriciaT

caching - Redis 写入速度较慢

我有6个Redis集群实例在2个虚拟机(3个主服务器和3个从服务器)中运行。我试图每晚加载我所有的key,大约是5亿个key到10亿个key。Web应用程序每晚执行计算并加载这些值。我的获取速度更快,因为写作需要很长时间。更新10000个key需要黑白6-10秒。对于早上登录的用户,恐怕夜间加载无法按时完成。下面是我的集群配置。启用集群是集群配置文件nodes.conf集群节点超时5000集群从属有效性因子1日志文件redis.log日志级别通知slowlog-log-慢于10000slowlog-max-len64延迟监控阈值100最大内存2048mb最大内存策略volatilett

php - Laravel Eloquent - 日期属性未作为 Carbon 对象检索

我在QuotaEloquent模型上有我的$dates属性,如下所示:protected$dates=['start','end'];从数据库中检索数据时,这些字段不会被设置为Carbon实例,而是字符串。created_at和updated_at属性也是如此。知道会发生什么吗?我在MySQL数据库上使用TIMESTAMPS字段,Laravel版本是5.2。 最佳答案 在您的模型中尝试此代码:publicfunctiongetStartAttribute($date){returnCarbon::parse($date);}publ

mysql - MySQL 中的 "CACHE INDEX"和 "LOAD INDEX INTO CACHE"

MySQLdocumentation意味着您可以将表的一个或多个索引分配给命名的键缓冲区(并预加载它们)。手册中的语法定义是:CACHEINDEXtbl_index_list[,tbl_index_list]...INkey_cache_nametbl_index_list:tbl_name[[INDEX|KEY](index_name[,index_name]...)]这似乎是说您可以只将一个表的索引分配给指定的键缓冲区。例如:SETGLOBALmy_keys.key_buffer_size=512*1048576;CACHEINDEXmy_tableKEY(PRIMARY)INTO

php - Carbon\Carbon 类的对象无法转换为 int

我已经搜索过了,我确实找到了一些讨论这个问题的主题,但是我觉得没有一个是我想要的,所以我希望在这里得到更好的建议。我想获取用户上次更新时间的时间戳。$user->updated_at如果我运行它,它会给我这个错误ObjectofclassCarbon\Carboncouldnotbeconvertedtoint这是因为它在Laravel5.2中返回一个Carbon实例,我只需要时间戳。Carbon{#303▼+"date":"2017-01-0400:35:38.000000"+"timezone_type":3+"timezone":"UTC"}我如何从carbon实例中获取“日期”

ios - 在 iOS 上,由于 dataWithContentsOfURL :options:error: has an option to not cache data, 这是否意味着 dataWithContentsOfURL 缓存数据?

不缓存数据的选项是NSDataReadingUncached。但是如果我使用dataWithContentsOfURL从UITableViewCell中的URL更新图像(每个单元格一个图像),然后我查看Mac上的事件监视器模拟器(运行为iOS5.1模拟器),然后当我连续上下滚动表格时,网络流量跃升至12kb/s的接收速率。当我停止上下滚动时,网络事件下降到大约2kb/s的接收速率或更低。这些图像非常小,每个大约20kb,当我上下滚动时,我只会让1或2个图像消失/出现,所以缓存(如果有的话)根本不需要很大。所以它看起来像dataWithContentsOfURL不缓存数据,即使我使用da

ios - 是 NSData + (id)dataWithContentsOfURL :(NSURL *)aURL options:(NSDataReadingOptions)mask error:(NSError **)errorPtr: cached automatically?

当我阅读关于的部分时NSDataReadingOptionsOptionsformethodsusedtoreadNSDataobjects.enum{NSDataReadingMappedIfSafe=1UL上面写着NSDataReadingUncached指示文件不应存储在文件系统缓存中的提示。对于只读一次就丢弃的数据,这个选项可以提高性能。适用于OSXv10.6及更高版本。在NSData.h中声明。所以我假设默认情况下这些URL请求被缓存并且如果我想使用共享全局缓存则不需要实现NSURLRequest来缓存数据?这种理解是否正确? 最佳答案