亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

redis 如何實(shí)現(xiàn)資料篩選
黃舟
黃舟 2017-04-22 09:00:37
0
6
1515

redis 如何實(shí)現(xiàn)數(shù)據(jù)按 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),
);
黃舟
黃舟

人生最曼妙的風(fēng)景,竟是內(nèi)心的淡定與從容!

全部回覆(6)
小葫蘆

請題主看看redis的zset,scop可以實(shí)現(xiàn)你的要求,但是你說的id大於的那種查詢最好在redis換換思路,這不是它的長項(xiàng)

伊謝爾倫

我覺得Key-Value資料庫不太適合篩選出來的應(yīng)用吧。

如果512這個條件是固定的,可以在添加文章的時候把大于512的元素加到一個集合里。
yesterday可以用EXPIRE實(shí)作。

如果篩選條件在設(shè)計(jì)時無法確定的話,就要遍歷Hash錶/鍊錶了,效率不會太高…

大家講道理

512 是一個什麼數(shù)?如果是有特別意義的數(shù),常常需要這樣查,那麼建議你將id>512的集合在redis中單獨(dú)用一個map存儲,如map_512,每次直接拿出整個map就行。如果不是,那就只能每次都取出map,然後在本地進(jìn)行過濾了。這種查詢?nèi)绻茴l繁,而且過濾條件不同的話,建議一次性拿回來全部,然後統(tǒng)一過濾。

Ty80

多謝各位大牛的回覆! :)

如果 redis 不適合這樣的需求,求推薦一款適合的 nosql 例如 mongodb?

左手右手慢動作

如果資料經(jīng)常變動,例如新增、修改、刪除鍵,可以用mongodb,輕鬆又愉快~

小葫蘆

另外建立索引或換mongodb

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板