redis 如何实现数据筛选
黄舟
黄舟 2017-04-22 09:00:37
0
6
1382

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),
);
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

모든 응답(6)
小葫芦

redis의 zset을 살펴보세요. scop은 귀하의 요구 사항을 충족할 수 있지만 100%보다 큰 ID로 언급한 쿼리 종류는 Redis에서 아이디어를 변경하는 것이 가장 좋습니다. 이는 장점이 아닙니다.

伊谢尔伦

Key-Value 데이터베이스는 조건으로 필터링하는 애플리케이션에는 적합하지 않다고 생각합니다.

512 이 조건이 해결되면 기사를 추가할 때 512보다 큰 요소를 세트에 추가할 수 있습니다.
yesterdayEXPIRE을 사용하여 구현할 수 있습니다.

설계 시 필터링 조건을 결정할 수 없는 경우 해시 테이블/링크드 리스트를 순회해야 하는데 이는 그다지 효율적이지 않습니다...

大家讲道理

512란 무엇인가요? 특별한 의미가 있는 숫자이고 이런 식으로 자주 확인해야 하는 경우 id>512 집합을 redis에서 map_512와 같은 별도의 맵에 저장하고 매번 전체 맵을 꺼내는 것이 좋습니다. . 그렇지 않은 경우 매번 지도를 꺼내어 로컬로 필터링할 수 있습니다. 이러한 쿼리가 매우 빈번하고 필터링 조건이 다른 경우에는 한꺼번에 검색한 후 균일하게 필터링하는 것이 좋습니다.

Ty80

답변해 주신 모든 분들께 감사드립니다! :)

이러한 요구에 redis가 적합하지 않다면 mongodb와 같은 적합한 nosql을 추천해 주세요.

左手右手慢动作

키 추가, 수정, 삭제 등 데이터가 자주 바뀌는 경우에는 mongodb를 이용하면 쉽고 즐겁습니다~

小葫芦

다른 인덱스를 생성하거나 mongodb로 변경

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿