шоб было как можно меньше обертки от библиотеки и больше нативного редиса, что выбрать ?
ioredis
больше нативного редиса ?
Попробуй с lua скриптами, есть такая штука dead lock, с помощью луа можно решить, одним запросом всё делать, вместо того чтобы делать несколько запросов к редис, полезная вещь
и как они вяжутся с бизнес логикой приложения?
Не понял вопроса
ну запросы в редис через либу вяжутся с бизнес логикой а вот скрипт на Lua взамен их как будет вязаться с бизнес логикой на бизнес уровне? никак не правда ли?)
Это что бы потом дебажить было интереснее
Ща я к компу подойду
а так же онбордить в проект и поддерживать проект
redis.eval(` local key = tostring(KEYS[1]); local value = tostring(ARGV[1]); local oldValue = redis.call('GET', key); if (oldValue == false) then redis.call('SET', key, value); return {key, value}; else return {key, oldValue}; end `, {keys: keys, args: args} Это пример, можно разного придумать, к сожалению проекта того нет, в интернетах такое показывают
Соврал, проект остался, короче там же разные типы данных в редисе, и не у всех есть все методы которые хотелось бы иметь, приходилось собирать из луа скриптов saddWithCount (key, value) { return this.client.evalAsync( [ local stored = redis.call("smembers", KEYS[1]), redis.call("sadd", KEYS[1], ARGV[1]), 'return stored' ].join(' \n '), 1, key, value ) } smembersDel (key) { return this.client.evalAsync( [ local stored = redis.call("smembers", KEYS[1]), redis.call("del", KEYS[1]), 'return stored' ].join(' \n '), 1, key ) }
ответил чуть выше
ну ок можно но стоит ли оно того и насколько это удобно большой вопрос не совсем еще понятно что значит и не у всех есть все методы которые хотелось бы иметь, приходилось собирать из луа скриптов
ну там от типа к типу методы отличаются, где-то можно удалить по значению, где то нет допустим. вот saddWithCount почему написали, 2 пользователя из одного воркспейса делали одно и то же действие одновременно и счетчик который у нас получался был неверным
странный конечно выход из ситуации (если конечно я её правильно понял) но если вам помогло то что прислано выше то хорошо
ну как оказалось это был самый простой и безопасный)
В редисе есть транзакции
Обсуждают сегодня