recherche

Maison  >  Questions et réponses  >  le corps du texte

redis 如何实现数据筛选

redis 如何实现数据按 id 或者 timestamp 筛选?
比如,像 sql 这样

sqlselect * 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),
);
黄舟黄舟2798 Il y a quelques jours1370

répondre à tous(6)je répondrai

  • 高洛峰

    高洛峰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

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦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...

    répondre
    0
  • 大家讲道理

    大家讲道理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.

    répondre
    0
  • PHP中文网

    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 ?

    répondre
    0
  • ringa_lee

    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~

    répondre
    0
  • 高洛峰

    高洛峰2017-04-22 09:02:37

    Créez un autre index ou passez à mongodb

    répondre
    0
  • Annulerrépondre