gpt4 book ai didi

mysql - Redis用户管理系统

转载 作者:IT王子 更新时间:2023-10-29 06:01:41 25 4
gpt4 key购买 nike

我正在将旧的基于 MySQL 的用户管理系统转换为 Redis,并且遇到了一些问题...

我正在使用 HASH 和 SET 的组合作为系统的基础。

只是一些伪代码

let uid=incr user_id_counter

hset joe@dom.com user user:uid
hset user:uid email joe#dom.com
hset user:uid gender m
hset user:uid year_of_birth 1972
hset user:uid fav_band acdc
sadd maleUsers uid
sadd born1972Users uid

此时一切正常,我可以使用 sinter 进行搜索例如:

sinter maleUsers born1972
or
sinter femaleUsers born1980

这是假设我为每一年的 birh 制作一个单独的集合

sad bornXXXX uid

这是我可以忍受的 - 但我将如何处理最喜欢的乐队?当然,我不会为所有可能的乐队制作一套?

最终我希望能够进行详细的搜索,例如,

sinter maleUsers born1980 genreRock genreMetal homeTownSydney

是否有更复杂的方法来进行关系查询?

最佳答案

我是 Redis 的忠实粉丝。但恐怕你的做法是错误的。用户凭据的主要存储应该仍然是传统的 RDBMS,坚持使用 MySQL 是一个很好的方法。

NoSQL 数据库,尤其是 Redis,旨在做其他事情。

Redis 是基于内存的。是的,您可以将所有内容保存到硬盘驱动器,但是当您的机器启动时,它会将所有内容从硬盘驱动器加载到内存中。并且 - 您的存储上限就是您机器的内存。因此,除非您指望的用户不多,否则我不会推荐将 Redis 作为主要存储来源。您仍然可以利用 Redis 对您的用户进行二次访问(例如二级缓存),但不能作为主要来源。

您可以为您的用户数据库使用基于磁盘的 NoSQL 数据库(MongoDB、CouchDB、Cassandra 等),这是比 Redis 更好的选择,但我仍然强烈建议为此使用传统的 RDBMS。您希望将最关键的数据保存在可靠的基于事务的系统中。

关于mysql - Redis用户管理系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14906928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com