我是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最大的時間提供更好,一次或兩次搜索)