Node-redis: احذف مصفوفة من المفاتيح باللون الأحمر باستخدام node-redis

تم إنشاؤها على ٢٩ سبتمبر ٢٠١٥  ·  5تعليقات  ·  مصدر: NodeRedis/node-redis

لدي مصفوفات من المفاتيح مثل ["aaa" ، "bbb" ، "ccc"] لذا أريد حذف كل هذه المفاتيح من redis باستخدام أمر واحد. لا أريد التكرار باستخدام الحلقة. لقد قرأت عن الأمر redis DEL وعلى الطرفية redis-client فإنه يعمل ولكن باستخدام nodejs لا يعمل

Redisclient.del (tokenKeys، function (err، count) {
Logger.info ("العدد هو" ، العدد)
Logger.error ("Error" ، يخطئ)
})

حيث tokenKeys = ["aaa"، "bbb"، "ccc"] ، هذا الرمز يعمل إذا قمت بإرسال مفتاح واحد مثل tokenKeys = "aaa"

question

ال 5 كومينتر

يمكن أن يأخذ client.del عددًا متغيرًا من الوسائط. يمكنك استخدام apply لتحويل المصفوفة الخاصة بك إلى وسيطات (لكنك ستحتاج أيضًا إلى الضغط على رد الاتصال الخاص بك). سيبدو شيء هكذا:

var tokenKeys = ["aaa","bbb","ccc"];

tokenKeys.push(function(err,count){
Logger.info("count is ",count)
Logger.error("err is ",err)
});

Redisclient.del.apply(Redisclient,tokenKeys);

إنه غريب بعض الشيء ، لكنه سيحصل على الوظيفة دون تكرار.

abhaygarg يجب أن يعمل هذا خارج الصندوق تمامًا كما كتبته. هل يمكنك تقديم المزيد من التعليمات البرمجية الخاصة بك؟ أعتقد أن الخطأ موجود في مكان ما في التعليمات البرمجية الخاصة بك. وما هو الإصدار الذي تستخدمه؟

stockholmux ليس هذا هو الحل للمشكلة. في الواقع ، من الأفضل استخدام تدوين المصفوفة على الفور بدلاً من استخدام الوسائط (ستتم إعادة كتابتها إلى مصفوفة داخلية).

نعم ، يمكنك تمرير المصفوفة مباشرة في Redisclient.del (tokenKeys، function (err، count) {
Logger.info ("العدد هو" ، العدد)
Logger.error ("Error" ، يخطئ)
})
أنه يحذف بشكل جيد يمكنك تمرير مجموعة في Redisclient.del () يعمل بشكل جيد

app.redis.keys('key_*', (err, keys) => {
    keys.forEach(key => {
        app.redis.del(key)
    })
})

knoxcard FYI - لا تستخدم المفاتيح - إنه أمر خطير على نظام الإنتاج الكبير.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات