草庐IT

Database_Cleaner

全部标签

database - 在redis中存储一个二维数组

我有一个二维数组要存储在Redis中,我看到了两种解决方案:将其存储为JSON字符串或每行存储一个哈希值。哪种方式更好? 最佳答案 我在设计应用程序时遇到了同样的问题。我选择了简单的一面。我将假设您的二维数据数组代表一个数据库行。我会对它进行JSON编码并使用SET存储它。当我想使用一个redis命令处理多个对象时,这允许我使用MGET和MSET。如果此数据在我的数据库中得到更新,我将DEL键。对我来说,这比尝试更新Redis哈希更容易。redis中的哈希有它的优势。由于redis使用“ziplist”编码,它们通常会占用较少的内存

database - 如何使用redis高效实现嵌套评论系统

我正在尝试使用redis实现一个嵌套的评论系统,例如每篇文章都可以有评论作为第一层评论,然后第一层评论可以评论并创建第二层评论,依此类推,可以有无限层。现在我使用哈希,每个键代表一篇文章,一个字段用于文章信息和一个字段用于评论,评论的值是xml格式,其中标签是嵌套为子节点的评论ID。但这非常低效,因为每次我尝试检索评论时,我都必须将所有评论作为一个整体获取。所以我想知道是否有其他更有效的方法来做到这一点?谢谢 最佳答案 我认为好的第一步是考虑这在关系数据库中会是什么样子。例如,一个简单系统可以有以下模式:Article(idINT,

database - 什么是 hyperloglog,它有什么用?

我正在研究Redis支持的数据结构,但找不到可以让我理解什么是HyperLogLog的解释。我如何使用它,为什么它有好处? 最佳答案 基本上是一种RedisSet,它使用优化的算法通过避免大量消耗内存来计算元素。Set和HyperLogLog之间的区别在于,对于HyperLogLog,您可以添加、计算唯一元素并将一些HyperLogLog合并到另一个中,所以基本上您不存储HyperLogLog中的成员,就像您在SET中所做的那样,并检索它们,您只需存储不同成员的出现,这就是HyperLogLog不提供检索其存储成员的命令的原因。一个

database - Redis 存储(或任何数据库?)锁定机制 (NodeJS)

我遇到以下问题:我正在使用Redis与NodeJS一起通过mranney'sdriver我的NodeJS网络服务器正在从Redis检索一些数据,对其进行一些操作并将其保存回Redis。但是此操作(称为X)可能需要一段时间,因此多个用户可以同时在相同资源上触发它。因此,如果用户A触发X,而用户B同时触发X,我希望用户A完成工作,然后用户B获取(已处理的)数据并执行X。同时,用户B等待。用户的顺序无关紧要-一次只有一个。那么如何在我的场景中实现这一点呢?如何锁定/解锁Redis?有可能吗? 最佳答案 有几种方法可以在Redis中实现锁定

database - Neo4j + Redis?是好是坏?

我正在制作一款具有社交网络功能的音乐应用。我希望用Neo4j和Redis来支持我的数据库。在Neo4j中,我将在redis中存储用户信息和所有其他信息(帖子、评论等)。有没有人对此有任何建议或见解? 最佳答案 简短回答:视情况而定。更长的答案:我假设您刚刚开始使用该应用程序,并且如果您想在其中投入(时间/金钱),希望获得快速反馈。如果您想要运行诸如“哪些用户评论了同一首歌曲”之类的查询,您需要将此数据放入Neo4J中。一般来说,你拥有的连接数据越多,你能回答的问题就越有趣。所以我宁愿将数据放入Neo4j。此外,仅查询一个数据库比聚合

relational-database - 在 Redis 和/或关系数据库中存储数据

我在Redis中存储了大约50,000个json对象。这适用于通过唯一键查找对象的主要用例。我现在必须添加一个功能来根据基于对象数据的复杂查询来搜索对象。例如,在2011年3月1日至2012年1月12日之间发布的所有作者为“lex”的商品,库存超过5件。使用SQL这很简单。我不太了解Redis,但还没有看到类似这样的东西。所以我想拥有一个小型关系数据库,用于存储Redis键和我需要搜索的数据。当需要一个复杂的查询时,我点击SQL并获得一组从Redis中提取的键。我拥有的数据很少更改,我会知道更改的时间和内容。所以我可以在更新时将数据导入rmdb和Redis。这种方法是个好主意吗?

database - Redis 使用高内存和小数据集

我正在运行redis-server,根据prstat,它使用了3721M内存。当我在redis-cli中运行info时,我得到这个用于内存:used_memory:8739028used_memory_human:8.33Mused_memory_rss:8739028mem_fragmentation_ratio:1.00这是在一个2GB的云实例上运行的,所以我的内存利用率总是结束。然而,即使我在Redis上flushall似乎也不会影响内存消耗。这可能是因为某个设置可能正在分配内存,或者知道为什么Redis在我的实际数据上使用了这么多?谢谢!编辑:另外补充一下,我在另一个实例上运行

database - 带有数据 : shared volume vs clustering vs single instance 的 Docker Swarm

我迈出了使用DockerSwarm的第一步,想知道如何处理使用持久性数据的服务,如redis、elasticsearch或数据库。我找到了很多关于如何使用dockerswarm配置redis/elasticsearch/database集群的教程——但是使用共享存储不是更容易吗?例如,我使用Azure,所以我可以简单地将单个Azure文件存储用作redis/elasticsearch/数据库卷,并让我的所有节点安装这个文件存储。这是一种可接受的方法还是存在一些明显的缺点(例如,当两个或多个数据库实例尝试同时写入该存储时)?是否建议在每个节点中使用此类“数据”服务?或者我应该只将Dock

database - 个性化提要的缓存策略

假设用户可以订阅其他用户的帖子、标签或他可能需要的任何其他类似条件。在他的提要上,应用程序返回用户之间相同的“主要提要”,并根据他的“订阅”标准提供提要项目(提要通过API提供)。提要数据是一种实体(帖子)。而且该提要是无限滚动(分页)的,这增加了额外的复杂性。如果提要在用户之间是相同的,缓存是微不足道的,但在个性化提要的情况下,我想不出什么是最好的方法。每个“页面”都按日期范围(特定日期)偏移。我能想到的一种方法是:'samefeed'部分由日期键(一些代表日期范围的键)缓存。个性化帖子提要项目将单独缓存。然后我根据标准保留帖子ID的数组,例如创作用户,或它被分配给喜欢的标签(用户#

database - Redis 复制问题

我有一个Redis主节点,它将由主应用程序填充。然后我将拥有这个Redis节点的多个从节点,它们可能位于不同的地理位置。这些节点将被该节点附近的应用程序读取。应用程序1。从站1应用程序2。从机2现在App1和App2以某种方式相关,我不希望出现特定数据片段在Slave1而不是Slave2的情况。换句话说,我不想要任何同步延迟。我希望数据同时同步下来。有没有可能是master将更新推送给slaves而不是slaves请求它。 最佳答案 Inotherwords,idontwantanysynclatency.Iwantthedatat