警告:搬到Redis不一定是个好主意.大多数时候将整个MySQL数据库移动到Redis是个坏主意,因为MySQL让你查询得更松散,并且比Redis更容易进行复杂的查询.我会告诉你如何移动东西,但是你很有可能只想为你的某些数据(或者甚至根本不需要)执行此操作,以获得速度高于其他所有功能的功能.
因此,假设您需要在数据进入实时时进行切换,您需要做一些事情:
您将要开始向MySQL和Redis发送数据,并以某种方式标记已发送给两者的行(可能您的updated_at列可以正常工作 - 只需标记您第一次开始向两者发送数据的时间) .
将所有旧数据移至Redis.您可以通过使用Python等语言编写快速脚本来实现此目的,该脚本将只获取所有数据updated_at <= redis_start_date
并将其插入Redis.现在,您的Redis数据库应该完全镜像您的MySQL数据库,并且您可以期望它继续镜像到未来.
确保过去依赖MySQL的所有适当的API都具有适用于Redis的新版本.
对所有内容进行大量测试,确保Redis中的数据与MySQL中的数据匹配,并且采用您想要的格式,同时确保所有适当的API都能使用它等等...
一旦您确信所有这些都已设置,只需将您的实时API切换为使用Redis而不是MySQL的API.你可以错开这个过程,一次一个地切换它们,并验证一切都是应该的.由于数据正在写入MySQL和Redis,因此您可以随时回滚以防出现问题.
一旦你切换了所有内容,并确信它可以按照你想要的方式使用Redis,关闭写入MySQL的代码并享受快速的新Redis数据库.
在构建这个方面,它实际上取决于你如何使用它.如果您只需要能够根据id查找单个项目并根据created_at对它们进行排序,则可(key = id; score=unix_time(created_at))
以为每个其他列使用一组有序的哈希值(id->列).同样,这不是你想要做的事情,而是取决于你的用例.
归档时间: |
|
查看次数: |
1764 次 |
最近记录: |