Rredis RPush с узлом js

#node.js #redis

Вопрос:

я хочу добавить элементы в массив с помощью redis и RPush, но я обнаружил ошибку :

Код

  const redis = require('redis');
const redisClient = redis.createClient();

     var arr = ["some val","some val2","some val3"];
            
            var multi = redisClient.multi();
        
            for (var i=0; i<arr.length; i  ) {
                
                multi.rpush('veggies', arr[i]);
                
            }
        
            multi.exec(function(err, response) {
                if(err) throw err; 
                console.log("response : ", response);
            })
 

Ошибка

 WRONGTYPE Operation against a key holding the wrong kind of value
 

Как я могу это решить ?
Спасибо.

Ответ №1:

Эта ошибка исходит от самого redis-сервера, и это означает, что тип значения, в котором оно хранится, veggies не является a list . Вы можете использовать TYPE команду, чтобы проверить, какой тип значения хранится в определенном ключе.

 TYPE veggies
 

Комментарии:

1. Тип-строка, и я нажимаю строки, но ошибка сохраняется

2. Я также получаю эту ошибку, когда пытаюсь «получить овощи 2».

3. Тип «строка», поэтому вы не можете использовать RPUSH , который работает только со списками. Что касается «veggies2» — команда GET работает только со строками, я предполагаю, что значение «veggies2» не является строкой.