【问题标题】:How should I move the redis account info to mysql?我应该如何将redis帐户信息移动到mysql?
【发布时间】:2019-05-06 21:13:55
【问题描述】:

account info包含部分,一个存储在mysql中,另一个存储在redis中,使用hash类型。

因为redis部分增长太快,内存快用完了,所以需要迁移到mysql。

mysql部分是account表,有50个字段,其中8个字段使用text数据类型存储json序列化字符串。

redis部分包含31个字段。

需要说明的是,该模型使用'select * from account'和'hgetall account_info'来获取账户信息。

例如,如果我只想获取帐户的名称,它将执行'select * from account'。如果我只想获取账号的game_counts,它会执行'hgetall account_info'

我应该如何将redis账户信息移动到mysql,一个新表或添加列到现有的账户表?

顺便说一句,这个项目已经运行了很多年了。

【问题讨论】:

    标签: mysql redis refactoring


    【解决方案1】:

    在我看来,你应该使用mysql来存储你的数据,而redis只是为了加快你的请求。

    因此,您可以将热点和不频繁更新的数据添加到 redis 中。另外:

    • 如果你只是想获取账户名,你应该'select name from account'或者'hget account name',不要使用'select *'或者'hgetall account'

    【讨论】:

    • 这是一个运行多年的项目,如果我想更改为使用帐户中的选择字段,它必须使用帐户对象到处更改并且知道需要哪些字段,这是很多工作。
    • 问题是如果把redis部分移到mysql,账户表字段数会增长到81,太多了。
    • 您可以逐步将数据从redis迁移到mysql。首先,你可以迁移占用空间大的字段,如果你觉得你的表格文件太多,你可以垂直表格。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 2019-04-29
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多