草庐IT

High-Performance

全部标签

performance - Laravel Redis 缓存

我现在正在做一个大项目,我们决定在我们的系统中使用redis作为缓存,所以当我们将一些数据放入缓存中然后原始数据发生变化时,我们怎么知道?在这种情况下,最佳做法是什么?删除旧数据并替换新数据?是否有任何机制可以仅替换已更改的部分? 最佳答案 使用redis缓存大型应用程序时需要牢记的几点:1)尽可能地本地化缓存。例如,如果每个用户有5条信息需要缓存。不是一起访问它们,而是为每个信息创建简单的缓存。2)选择正确的数据结构。尽可能使用redis的集合、散列、排序集合和位操作。3)确保您的系统即使在redis不可用时也能正常工作(以克服停

java - Redis Java 客户端 : Do I need to buffer my commands into a pipeline for performance?

所以我只是递增排序集中的分数。这是我使用Jedis客户端从Java应用程序运行的唯一命令,每秒大约10-30个命令。由于我只是更新分数,所以我也不关心响应。我担心的是每个ZINCRBY命令都被放入它自己的TCP数据包中,并且还在等待下一个回复,然后才允许我的线程发送下一个ZINCRBY线程。所以,我只想实现流水线来一次批处理50个命令。这是我看到代码/设计模式味道的地方:这种设计模式是否足够普遍以至于驱动程序应该处理它?看起来.net“StackExchange.redis”驱动程序会自动执行命令批处理,但Java驱动程序没有此功能吗?我的想法是制作一个自定义的Redis命令缓冲区类,

performance - 具有层次结构性能的 DocumentDB 与键值数据库

第一件事:我知道键值数据库是迄今为止性能最好的数据库。我的假设是这是由于它们的简单性(坚持很少的原语)。(EDIT2:显然也是由于蜜蜂主要保存在内存中)不管怎样,更复杂的数据结构,如层次结构树等等。对于像redis这样的数据库,你必须构建一个基于“平面”散列和链接的结构,而对于像couchdb这样的文档数据库,你只需自己构建结构,如:"menu":{"id":"file","value":"File","popup":{"menuitem":[{"value":"New","onclick":"CreateNewDoc()"},{"value":"Open","onclick":"Op

redis - 如何实现Redis Labs Enterprise Cluster High Availability?

开始学习RedisLabsEnterpriseCluster,但我对如何使用RLEC实现高可用性感到困惑。我了解到RLEC使用专有复制,这与开源Redis不同。我想要实现的是,如果我的主数据库出现故障,我的应用程序仍然可以通过连接到副本数据库正常运行。我的问题是:我已经创建了2个节点。如果我创建了一个名为testing并启用了复制的新Redis数据库,其中哪个节点是主数据库(以及哪个节点是奴隶)?端点表示的是当前的master吗?我连接到每个服务器中的localhost:19332(如端点所示)。为什么我可以从两个服务器进行设置?(并且它出现在两个服务器中)。我认为通常复制应该是从主到

performance - MongoDB 插入第二个索引的性能

我正在尝试使用WiredTiger将大约2.5亿个文档插入到MongoDB3.0中,每个文档大约400个字节。我只需要搜索一个短字符串键_user_lower。虽然我现在使用的是WiredTiger,它比MMAPv1好得多,但我确实首先使用了MMAPv1并且遇到了类似的问题。我的服务器(一个非常便宜的VPS)有:250GB磁盘1GB内存2GB交换2.1GHz单核CPU我知道这台机器真的很慢,我要求它做一些有点不切实际的事情。但是我很困惑它是如何用一个索引启动得如此之快,而第二个索引却毁了性能:我插入了我当时拥有的所有数据(大约2.5亿行)除了_id之外没有任何索引。考虑到我糟糕的硬件,

Mysql Bulk update performance improvements for (when.. case)

我有一个这样的查询,它应该在每个MySQL操作之后执行。由于数据增加,此查询现在正在减慢页面加载速度,我做了正确索引等所有操作,但查询仍然相对较慢。还有其他方法可以执行这些检查吗?$query="UPDATE{$tprefix}wh_profgSETstatus=CASEWHENbatchnoin(selectbatchnofrom{$tprefix}wh_profulldetailwhereremainingdays0andremainingdays>0)THEN'quarantine'WHENQC='approved'andQA='approved'andstatus!='empt

PHP PDO : how does re-preparing a statement affect performance

我正在编写一个半简单的数据库包装器类,并希望有一个可以自动操作的获取方法:它应该只在第一次准备每个不同的语句,然后绑定(bind)并执行查询连续调用。我想主要问题是:如何重新准备相同的MySql语句,PDO会神奇地识别该语句(因此我不必)并停止操作吗?如果不是,我计划通过为每个不同的查询生成一个唯一的键来实现这一点,并将准备好的语句保存在数据库对象的私有(private)数组中——在它的唯一键下。我打算通过以下方式之一获取数组键(我都不喜欢)。按优先顺序:让程序员在调用方法时传递一个额外的、始终相同的参数-类似于basename(__FILE__,".php")的内容。__LINE__

mysql - Laravel API 的 mysql 查询未在 performance_schema.events_statements_summary_by_digest 中被跟踪

我在这里遇到了一些非常奇怪的问题。我们在AWSEC2上托管了一个laravelAPI,并且我们使用RDS(mysql5.6)。我最近在RDS上启用了performance_schema。以下是我注意到的行为我们的RDS实例上有两个数据库。一个用于wordpress,一个用于我们的laravelAPI。Wordpress数据库查询正在被很好地消化。但是从我们的laravel应用程序运行的查询不是。出于某种原因,当我将MySqlWorkbench连接到RDS实例并在我们的Laravel数据库上执行查询时,它们会正常显示在语句摘要中。我登录到我的EC2机器,连接到RDS上的MySQL并执行了

iOS 10.3 模拟器在 macOS High Sierra 中显示错误时间(UTC 而不是本地时区)

经过多次研究,我没有找到任何可行的解决方案。我不知道为什么我的iOS10.3模拟器在macOSHighSierra中显示错误时间(UTC而不是本地时区)(也在设置之后)。我已经应用了许多解决方案,但对我没有任何作用。我附上了相同的屏幕截图。引用。链接https://forums.developer.apple.com/thread/93087那么,请帮我解决这个问题。提前致谢。 最佳答案 更新我的Xcode8到Xcode9后,上述问题已自动解决。 关于iOS10.3模拟器在macOSHi

objective-c - iOS5 : UITableView poor scrolling performance

首先,我在滚动tableview时发生内存泄漏。与here相同的问题.此外,我的滚动速度足够快,但在我滚动时它“有点颤抖”。细胞可重复使用。代码:-(UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIndexPath*)indexPath{staticNSString*CellIdentifier=@"Cell";Country*country=[[self.itemsobjectAtIndex:[indexPathsection]]objectAtIndex:[indexPathro