Гость
Map
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / Redis подскажите кто может / 3 сообщений из 3, страница 1 из 1
16.03.2012, 19:14
    #37709080
vov4ik08
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Redis подскажите кто может
Привет всем! Более 4 лет пользуюсь реляционными БД(MSSQL,MYSql и т.д), и тут стала задача написать db на redis. Я в маленьком шоке, так как трудно перестроиться с одного на другое, вот и прошу помощи, как реализовать вот такой простой пример:

Есть пользователь имеет такие свойства(id,username,raiting,date). Нужно сделать постраничный вывод юзеров у которых определённая дата(например тех кто был создан за последнюю неделю). На SQL это элементарно а на redis но никак не получается, прошу помощи,если кто понимает в этом. Как язык отображения использую php. Спасибо все кто откликнется.
...
Рейтинг: 0 / 0
23.03.2012, 16:47
    #37720429
trew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Redis подскажите кто может
...
Рейтинг: 0 / 0
29.03.2012, 00:13
    #37728607
u_gray
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Redis подскажите кто может
vov4ik08Привет всем! Более 4 лет пользуюсь реляционными БД(MSSQL,MYSql и т.д), и тут стала задача написать db на redis. Я в маленьком шоке, так как трудно перестроиться с одного на другое, вот и прошу помощи, как реализовать вот такой простой пример:

Есть пользователь имеет такие свойства(id,username,raiting,date). Нужно сделать постраничный вывод юзеров у которых определённая дата(например тех кто был создан за последнюю неделю). На SQL это элементарно а на redis но никак не получается, прошу помощи,если кто понимает в этом. Как язык отображения использую php. Спасибо все кто откликнется.

с редисом вы работаете через api на каком-то языке
на этом язык преобразовываете дату в число (например для php, python и пр. функциями strtotime(), mktime())

для примера переведем три даты:
>>> import time
>>> str(int(time.mktime(time.strptime('26 May 2009 19:58:20',"%d %b %Y %H:%M:%S"))))
'1243353500'
>>> str(int(time.mktime(time.strptime('26 May 2009 20:58:20',"%d %b %Y %H:%M:%S"))))
'1243357100'
>>> str(int(time.mktime(time.strptime('26 May 2009 21:58:20',"%d %b %Y %H:%M:%S"))))
'1243360700'

в редис засылаем уже преобразованную дату ( я покажу из консоли, а Вы должны использовать обертки для ZADD и ZRANGEBYSCORE того языка, из которого вы работаете с Redis) :

redis> ZADD userinfo 1243353500 "id1,username1,raiting1"
redis> ZADD userinfo 1243357100 "id2,username2,raiting2"
redis> ZADD userinfo 1243360700 "id3,username3,raiting3"

поиск, о котором Вы написали, будет выполняться так:

redis> ZRANGEBYSCORE userinfo 1243353500 1243357100
1) "id1,username1,raiting1"
2) "id2,username2,raiting2"
...
Рейтинг: 0 / 0
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / Redis подскажите кто может / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]