草庐IT

software-design

全部标签

database-design - 使用redis获取我的 friend 事件(redis JOIN替代方案)

我想通过使用redis来提高应用程序的性能。我成功地将它用于缓存和计数器,现在正尝试使用它来搜索我friend的事件。我们有2个表:事件(用户、事件、时间戳)friend(用户,friend)我需要能够让我friend的事件按时间戳排序。在sql中它可能看起来像:SELECTact.activity,act.timestampFROMactivitiesactJOINfriendsfrONfr.friend=act.userANDfr.user="{user}"WHEREact.timestampUPD要点:https://gist.github.com/nanvel/8725b9c7

database-design - 我可以在 Oracle 数据库中持久化 redis 数据吗?

我们正在尝试通过Redis实现缓存,我了解到它会将数据存储到自己格式的RDB文件中。但是我们已经有其他客户端使用的Oracle持久性。因此,我们不想将数据存储在RDB文件中,而是希望将数据持久保存在OracleDB中。 最佳答案 在这种情况下禁用文件写入,并将Redis用作纯内存缓存。为此,只需注释redis.conf中的所有“保存”行即可。在伪代码中,读取一个值应该像这样完成:result=getvaluefromredisif(resultisnull){result=getvaluefromOraclestoreresulti

database-design - Redis 数据库设计基础

我设计了我的第一个Redis数据库,希望得到一些反馈、建议或提示。概述:我的redis数据库存储文章,以后可以按喜欢、创建日期、更新日期、作者等排序......文章也包含“项目”,我还需要确定哪些文章中至少有1个项目。创作创建新文章时,我将其ID写入各种键ZADD'articles:created'时间戳ArticleIDZADD'articles:updated'时间戳ArticleIDZADD'articles:likes'0文章IDSADD'user:USERID:articles'文章ID每当文章更新时ZADD'articles:updated'时间戳ArticleID每当一个

design-patterns - 如何设计游戏服务器的通信 channel

我打算设计一个游戏服务器。我希望它可以承受非常重的负载、可重用、灵活,但易于编程,我想在这些方面取得平衡。我决定用nodejs和redis,protocal的数据格式是JSON,websocket我有web开发经验,但对游戏服务器开发一窍不通,我注意到游戏服务器是非常实时的,消息不是点对点的,而是pub-subchannel,nodejs、redis、json是设计通信channel的好选择,websocket是否被大多数浏览器支持?可能问题太多了,唯一的问题是如何设计游戏服务器的通信channel? 最佳答案 首先,下次使用真正的

database-design - Redis中最快的伪索引是什么?

TheLittleBookofRedis解释了如何通过电子邮件地址查找用户ID,这样您就可以通过用户ID查找用户哈希并获得完整的用户对象。它实际上是按电子邮件地址对用户的索引。每次插入新用户时,您只需要添加到查找哈希:setusers:9001"{id:9001,email:leto@dune.gov,...}"hsetusers:lookup:emailleto@dune.gov9001在我看来,此操作涉及哈希内部的隐藏查找,Redis必须执行该查找才能提取所需电子邮件字段的值。可能有数千个电子邮件字段,而我们只要求其中一个。像这样在索引键中使用电子邮件如何:setusers:900

database-design - 在像 Redis 这样的键/值数据库中对数据进行分组

我正在尝试在Redis数据库中对类似于amazon.com类别(例如书籍、电影、电子产品等)的数据进行建模。当它们呈现在HTML页面上时,顺序对我来说很重要,以便为用户呈现一致的用户界面。因此,我将类别存储在SortedSet中:ZADDcategories0"Books"ZADDcategories1"Movies"ZADDcategories2"Electronics"然后我为每个子类别创建了另一个SortedSet。ZADDcategories:books0"Fiction"ZADDcategories:books1"Non-Fiction"ZADDcategories:movi

database-design - 使用 Redis + Node.js 的数据库架构

在回答其他一些SO问题之后,我正在开发一个网站监控应用程序作为一个宠物项目,目的是学习更多关于Node.js+Redis的知识。我的计划是让用户添加url并将它们添加到RedisSET。每分钟,我都会获得SET结果,执行HTTPGet请求并打印响应。这似乎工作正常,但是,我有几个问题:鉴于RedisSET不允许重复键(这将使我免于对同一URL发出请求),当用户从他的帐户中删除该URL但另一个用户具有相同的URL时,我该如何控制?我能否在URLkey中包含一个INCR值,以便我知道有多少用户在他们的帐户中有该URL?考虑到我每分钟都会发出一个HTTP请求,并且我想使用Redis来保存结果

database-design - Redis 多列范围查询

我将用户作为Redis哈希,并希望根据薪水和年龄找到相似的用户(给定特定用户)。101Neo30300....因此,在这种情况下,我需要在给定的限制范围内找到与我的年龄和薪水接近的用户。在SQL中,我假设会做类似的事情SELECTid,abs(age-30)asagediff,abs(salary-300)assaldiffFROMUSERSWHERE(ageBETWEEN2535)AND(salaryBETWEEN250350)ORDERBYagediffASC,saldiffASC我们能否做到这一点,比如使用ZINTERSTORE,结果集可以像SQL中那样按用户相似性排序?

ios - Swift: "Must call a designated initializer of the superclass"错误,即使代码正在这样做

目标是子类化SCNNode。根据classdocs,init(geometrygeometry:SCNGeometry?)是一个指定的初始化器(没有列出convenience关键字),所以这段代码不是调用其父类(superclass)的指定初始化器吗?为什么Xcode显示以下错误?MustcalladesignatedinitializerofthesuperclassSCNNodeclassPreviewNode:SCNNode{//ConstantsletPreviewNodeColor=gRedColorletSize=CGFloat(1.0)letChamferRadius=C

design-patterns - 协议(protocol):为什么一致性检查和可选要求需要@ObjC?

Swiftdocumentation以下是关于协议(protocol)的内容:Youcancheckforprotocolconformanceonlyifyourprotocolismarkedwiththe@objcattribute,asseenfortheHasAreaprotocolabove.ThisattributeindicatesthattheprotocolshouldbeexposedtoObjective-CcodeandisdescribedinUsingSwiftwithCocoaandObjective-C.Evenifyouarenotinteroper