草庐IT

Database_Cleaner

全部标签

database - Yii2 + Redis 作为数据库

我想使用Yii2和redis作为数据库。到目前为止,我从这里得到了Yii2的RedisActiveRecord类。link1link2但是,我遇到了一个问题。为什么这个类在REDIS中添加任何东西作为哈希????在上面我无法找到它插入数据的模式。我添加一个用户,它将在user:xxx命名空间下添加一个用户,在s:user:xxx下添加另一条记录,依此类推,但没有一个主题有任何字段,我在属性中定义!仅包含ID。我知道Key-value类型的数据库和RDBMS是不同的,也知道在Redis中如何实现像记录这样的关系,但我不知道为什么它只保存ID。到目前为止,我找不到任何使用redisActi

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

Node.js 服务器 : connect to redis database once? 还是在每次请求时?

我正在构建一个node.js服务器,在redis数据库中使用简单的身份验证获取uid和key。我是否应该在运行服务器时一劳永逸地连接到redis数据库,例如:varhttp=require('http'),express=require('express');varapp=express();varredis=require('redis'),redisclient=redis.createClient();//...redisready,error,endcallbackhandlershere...app.get('/connect/:uid/:key',function(req,

ruby - 对于使用 Redis 的 Ruby on Rails 应用程序,我们是否需要任何 database.yml 文件

我创建了一个没有事件记录的RubyonRails应用程序:-$railsnewrails_using_redis_demo_app--skip-active-record现在为了执行数据库操作,我必须包含包含有关数据库适配器的必要详细信息的database.yml文件。我还在我的gemfile中包含以下内容:-gem'redis'我还发现redis实际上将数据存储在一个带有键值对的.rdb文件中,可以借助存在的键来访问它。我做事的方式是否正确。 最佳答案 您是否删除了Rails配置文件中所有与ActiveRecord相关的内容?也许

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

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

database - 按值简单搜索?

我想按如下方式存储一些信息(请注意,我一点也不拘泥于这种数据结构,但这向您展示了我要存储的底层信息):{user_id:12345,page_id:2,country:'DE'}在这些记录中,user_id是唯一字段,但page_id不是。我想将其转换为Redis数据结构,并且我希望能够按如下方式运行高效搜索:对于user_id12345,找到相关国家。对于page_id2,找到所有相关的user_id和他们的国家。在Redis中真的可以做到这一点吗?如果是这样,我应该使用什么数据结构,我应该如何避免在插入记录时重复记录的可能性? 最佳答案

database - Redis变慢的原因

Redis工作/响应缓慢的原因可能是什么?即我在Stackoverflow上发现,在Redis中存储大文件或数据会使速度变慢。还有什么? 最佳答案 这个问题没有简单的答案。对于所有基于NoSQL或SQL的存储解决方案,有很多情况可能会导致存储引擎的高延迟或缓慢。Redis也不异常(exception)。我建议从阅读开始:HowfastisRedis?Redislatencyproblemstroubleshooting以下是潜在原因的非详尽列表:硬件不足(网络、内存、CPU)基于软件的虚拟化(例如低端硬件上的Xen)内存不足,在操作

database - 如何保护 Redis 集群?

我知道RedisCluster仍然不稳定,但它已经通过了很长时间以来的所有单元测试,所以我开始使用它。我想知道如果节点需要身份验证,Redis集群是否可以正常工作。我倾向于认为是的,因为它们通过不同的端口连接并使用不同的协议(protocol),但我不确定并且在spec上找不到任何文档或任何内容。确认这一点。还有,如果redis集群协议(protocol)飞越认证关卡,那岂不是安全漏洞?外界可以访问我的数据库吗?(端口至少必须是可访问的,这样它才能与其他节点通信) 最佳答案 SSH隧道可能是一个简单的解决方案:您不需要将redis端

database - 在键值存储中管理键的好方法是什么?

尝试为键值存储中的键定义一些策略(我们使用的是Redis)。键空间应该是:可分片(可以引入更多服务器并分散它们之间的key空间)命名空间(应该有某种机制将键逻辑地“组合”在一起,例如按域或相关概念)高效(尝试在数据库中为键使用尽可能少的空间,以允许尽可能多的数据)尽可能避免碰撞(避免两个不同对象的键相等)我考虑过的两种选择是:为命名空间使用前缀,由一些字符分隔(如human_resources:person:)。这样做的好处是它非常可扩展且易于理解。缺点是可能会发生冲突,具体取决于分隔符(如果id中包含字符:怎么办?),以及可能的大小效率(过多的嵌套命名空间可能会创建很长的键)。使用一