Хранение объекта Java Date в REDIS

Мне нужно сохранить объект Java Date в Redis. Я использую Jedis как мой клиент Redis. Как сохранить объект Date в Redis и получить его с помощью Java? Все, что я вижу, использует значения String и Integer. Тем не менее, я недостаточно понимаю об этом мире, чтобы сделать это с помощью объекта Date.

2 ответа

Как преобразовать объект Date в временную метку Epoch и преобразовать его обратно в Date с любым форматом даты? Таким образом, вы не столкнетесь с проблемами с ошибками форматирования.

//...convert date to epoch timestamp
Long time = new Date().getTime();
//...serialize it to a json object
job.addProperty("dateTime", time);
//...write it to redis
jedis.hset(KEY, field, job.toString());
//...retrieve the field and convert date with any format
model = gson.fromJson(jedis.hget(KEY, field), ModelClass.class);
//...print the date (suppose that the time field is of type Long)
DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
System.out.println(format.format(model.getTime()));

Надеюсь, что это поможет.


Вам нужно найти способ сериализации данных и проанализировать его позже. Redis будет хранить только строки, а Jedis не предоставляет сериализаторы. Этот разговор содержит больше информации о вашем случае использования.

licensed under cc by-sa 3.0 with attribution.