当前位置: 首页 > 面试题库 >

使用Redis或mongodb存储用户信息

金皓君
2023-03-14
问题内容

我需要在类似json的对象中存储一些用户和文档状态信息。例如:

{
    "name": "Henry",
    "company": "Disney",
    "is_recommended": true,
    "plan_type" "free",
    etc.
}

当用户登录或更改任何用户信息时,将从数据库中获取此信息并将其存储在会话的内存中。

我对Redis有一定的经验,我对使用它感到很满意,但是我想知道是否可以在Redis中完成以上操作而不会遇到太多麻烦。例如,这是我需要运行的一些查询:

update items set plan_type="Paid" where company = "Disney";

您是否认为可以在Redis中执行上述操作,还是应该尝试使用其他方法(我认为是mongodb)来完成上述操作?

99%的使用量将用于读取数据,但是1%的使用量将以批量方式更新数据,并且需要立即完成。

六年前提出了类似的问题-什么是存储数千个中型文档的最有效的面向文档的数据库引擎?-但是我敢肯定,自那时以来,redis和mongodb都发生了很大变化。


问题答案:

您可以使用或来为 公司 字段构建二级索引:SET``LIST

SADD company:Disney userid1
SADD company:Disney userid2
SADD company:OtherCompany userid3

当您需要更新数据时,请执行以下步骤:

  1. 搜索公司索引以获取用户ID: SMEMBERS company:Disney
  2. 搜索用户索引以获取用户属性:对于每个用户,请执行以下操作: GET userid
  3. 更新属性
  4. 更新用户索引:对每个用户执行以下操作: SET userid new-attributes

这是实现目标的内置方法,需要更多的工作,并且有些复杂。

但是,正如注释中提到的@Not_a_Golfer一样,Redis有一个名为RediSearch的模块可以为您完成工作。如果您正在使用Redis
4.0或更高版本,则可以尝试一下。



 类似资料:
  • 本文向大家介绍使用vuex存储用户信息到localStorage的实例,包括了使用vuex存储用户信息到localStorage的实例的使用技巧和注意事项,需要的朋友参考一下 1、首先需要装vuex 2、新建store文件夹,新建index.js, 并引入vue、vuex,代码如下: 3、在main.js中引入store, 4、在登录组件中,如代码所示: 5、储存其他状态类信息,方式相同。 以上这

  • 问题内容: 我对Redis真的很感兴趣,我有一个主意,想知道它是否合适,或者是否对数据存储没有其他建议。同样,关于存储数据的任何技巧将不胜感激。 我的想法只是一个简单的事件系统,因此发生了一个事件,并将其存储在redis中,如下所示 关键 值[unixtimestamp]:[系统]:[事件] | [结果] 数据可以是任何销售,印象数,错误,api响应时间,页面加载时间以及任何实时分析数据。然后,我

  • 问题内容: 谁能举例说明您将从Redis和MongoDB一起使用中受益的情况? 问题答案: Redis和MongoDB可以一起使用,效果很好。Craiglist是一家以运行MongoDB和Redis(以及MySQL和Sphinx)而闻名的公司。请参阅Jeremy Zawodny的演示文稿。 MongoDB对于以各种方式索引的持久性,面向文档的数据很有趣。对于易失性数据或对延迟敏感的半永久性数据,R

  • 摘要:Java选项允许Java使用计算机帐户的Windows信任存储。什么选项允许它对用户帐户使用Windows信任存储? 我们有一个在Windows客户端上运行的Java应用程序。应用程序从各种来源获取数据,其中一些来源使用的证书不在默认的文件中。 当用户选择访问外部数据的项目时,系统会提示他们下载外部站点的证书。由于我们的安全设置,文件对用户是只读的。由于JRE无法将证书导入,因此无法下载外部

  • sql.conf中的read_groups指令的值可能由前一个管理员设置为no;将其更改为yes将激活所有用户的组表读取。 需要先安装freeradius-postgresql包。该软件包包含所需的设置文件以及PostgreSQL特定的FreeRADIUS模块。 不,您不对SQL数据库或文本文件进行身份验证,而是使用它们来存储凭据。然后,验证模块使用存储在文本文件或SQL数据库中的数据进行密码验证

  • 用户存储 用户存储是保存用户详细信息的地方。理想的情况是有一个单一的用户存储,使用不同的系统来使用这个单一的源。企业对这样一个存储的需求导致了目录的产生。Novell的edirectory、Microsoft的Active Directory和OpenLDAP都是目录的例子。 在WWW领域,谷歌和Facebook等流行的网络环境允许第三方通过网络服务使用他们的用户存储。 这使外部Web应用程序可以