Временная метка, которую вы используете, кажется, указывается в миллисекундах, поэтому вам нужно только вычесть и преобразовать в нужные вам единицы.
Вы можете получить оценку, используя ZSCORE
для каждой сообщение. Или используйте один из методов ZRANGE для одновременного получения нескольких сообщений: ZRANGEBYSCORE ... WITHSCORES
.
Вы можете использовать скрипт Lua для получения разницы во времени:
local t1 = redis.call('ZSCORE', KEYS[1], ARGV[1])
local t2 = redis.call('ZSCORE', KEYS[1], ARGV[2])
return tonumber(t2) - tonumber(t1)
Здесь полная команда EVAL:
EVAL "local t1 = redis.call('ZSCORE', KEYS[1], ARGV[1]) local t2 = redis.call('ZSCORE', KEYS[1], ARGV[2]) return tonumber(t2) - tonumber(t1)" 1 conversation:9:chat_messages 2583 732016