我是Redis的新手,尝试使用php和redis实现一件事情。我只是在mysql中描述条件,我不会从mysql迁移任何东西到redis。从MySQL使用案例中了解Redis
比方说,我有一个表,其中我将存储用户的日常消费,用以下结构
+-----------+------------+---------+
| user_id | date | count |
+-----------+------------+---------+
| 123 | 2017-06-06 | 231 |
| 123 | 2017-06-07 | 456 |
| 124 | 2017-06-06 | 433 |
| 124 | 2017-06-07 | 188 |
+-----------+------------+---------+
计列将在下列方式更新,每一个电话
UPDATE `table`
SET count = count + 12
WHERE user_id = 123 AND date = 2017-06-06
在了解Redis之后,我了解Redis中没有表格的概念并且存储这些数据,我应该使用以下格式的密钥:
(e.g. key user:123:date:2017-06-06)
127.0.0.1:6379> INCRBY user:123:date:2017-06-06 12
(integer) 12
127.0.0.1:6379> INCRBY user:123:date:2017-06-06 32
(integer) 44
到目前为止好。
现在我面临的问题是查询。 在MySQL中,在每月结束时,我可以简单地使用下面的查询用户展示他们的消费和结算:
SELECT `date`,`count` FROM `table` WHERE `date` > 'some_date' AND `user_id` = 123
或
SELECT SUM(`count`),`user_id`,MONTH(date) GROUP BY `user_id`,MONTH(`date`)
但我不知道如何在Redis的做到这一点,如果我想计算单个用户,那么很容易,因为我知道关键的格式,并user_id说明,这样我就可以创建密钥,并获取准确的数据,我需要
127.0.0.1:6379> GET user:123:date:2017-06-06 32
但就是疗法e类似的东西或类似的东西
127.0.0.1:6379> GET user:*:date:*
或者redis不是为这种类型的查询和东西?
任何帮助将是appreciated.Thanks (或者,如果你能告诉我一些有用的文档)
(原因,我实现它在Redis的,而不是MySQL的是,将会有每秒许多增量查询,约数百我认为Redis的将是这将是唯一INCR查询this.As最大的时间提供更好,一次或两次搜索)