Maison > Questions et réponses > le corps du texte
redis 如何实现数据按 id 或者 timestamp 筛选?
比如,像 sql 这样
sql
select * from news_table where id > '512'; select * from news_table where id > '512' and cat_id = '2'; select * from news_table where pubdate > 'yesterday';
sql
-- news_table info CREATE TABLE `news_table` ( `id` int(10), `cat_id`, int(10), `title` text, `content` longtext, `pubdate` int(10), );
高洛峰2017-04-22 09:02:37
Veuillez jeter un œil au zset de redis, scop peut répondre à vos besoins, mais le type de requête que vous avez mentionné avec un identifiant supérieur à 100% est préférable pour changer l'idée dans redis, ce n'est pas son point fort
伊谢尔伦2017-04-22 09:02:37
Je pense que la base de données Key-Value n'est pas adaptée aux applications filtrant par conditions.
Si 512
cette condition est corrigée, vous pouvez ajouter des éléments supérieurs à 512 à un ensemble lors de l'ajout d'un article. yesterday
peut être implémenté en utilisant EXPIRE
.
Si les conditions de filtrage ne peuvent pas être déterminées lors de la conception, la table de hachage/liste chaînée doit être parcourue, ce qui ne sera pas très efficace...
大家讲道理2017-04-22 09:02:37
Quel est le nombre 512 ? S'il s'agit d'un nombre ayant une signification particulière et qui doit souvent être vérifié de cette manière, il est recommandé de stocker l'ensemble des id>512 dans une carte distincte dans Redis, telle que map_512, et de simplement supprimer la carte entière à chaque fois. . Sinon, vous ne pouvez retirer la carte qu'à chaque fois et la filtrer localement. Si ce type de requêtes est très fréquent et que les conditions de filtrage sont différentes, il est recommandé de toutes les récupérer d'un coup puis de les filtrer de manière uniforme.
PHP中文网2017-04-22 09:02:37
Merci à tous pour vos réponses ! :)
Si Redis ne convient pas à de tels besoins, veuillez recommander un nosql approprié tel que mongodb ?
ringa_lee2017-04-22 09:02:37
Si les données changent fréquemment, comme l'ajout, la modification ou la suppression de clés, vous pouvez utiliser mongodb, ce qui est simple et agréable~