我有一个应用程序,可用于API调用。在每个API调用中,我执行一些任务并收取费用(可以发送邮件或短信或任何此类东西)。Redis可以在单个键值对上每秒执行数百次交易
目前我把我的用户余额/信用卡数据在MYSQL表中以下形式:
|user|balance|
|a |1200 |
|b |1200 |
|c |1300 |
|d |1400 |
|e |1212 |
|f |9000 |
|g |8000 |
|h |7000 |
但是,当一个用户点击每个API我更新数千次minute.And的API,这是产生问题用户平衡,如果没有足够的平衡,我会返回一些错误。
当API命中的数量不多时,不存在问题,但当数量较大时,更新天平将在该行上创建锁定,并且其他API必须等待处理。
我正在考虑将此表移动到缓存或内存数据库中,以便我可以加快此过程。
早些时候我有memcache在脑海中,但它是不稳定的,等搜索我读redis。
但我很困惑,我的问题是否会得到解决呢? 对于不同的密钥,从redis获取数据可能会很快,因为它仅保存在内存/ RAM中,但如果有相同/单个密钥有数千个更新和搜索查询,它将如何工作。
请分享,如果您有任何关于此知识或经验,或者如果有人有更好的解决方案,我的问题比redis,请帮助。
在普通笔记本电脑处理器上,它可以达到每秒200k + ops。它**也有一个持久层。还有一个高可用性模块(称为Sentinel)。 –
我会接受你的话。 RedisLabs的高层联系人告诉我,没有持久性。我没有redis的第一手经验。 –
Redis甚至有**两种持久性机制:(1)快照,和(2)仅附加文件。如果您愿意,两种机制都可以同时使用。 –