我使用redis來存儲位域數據,並在每個偏移量中設置一個u4值。
我需要在Nodejs服務器中獲取緩衝區。
for 0-7,redis返回正確的緩衝區。
但設置時8-15 value.It返回一個奇怪的緩衝區.Uint8Array視圖到緩衝區,它顯示[239,191,189]它代表亂碼。 這是複製到運行測試代碼。
btw問題與resoponse緩衝區。試圖獲得#0值是好的。爲什麼redis返回一個[239,191,189]響應緩衝區?
const http = require('http');
const url = require('url');
const fs = require('fs');
const redis = require('redis'),
RDS_PORT = 6379,
RDS_HOST = '139.199.33.69',//139.199.33.69
RDS_OPTS = {detect_buffers: true},
client = redis.createClient(RDS_PORT, RDS_HOST, RDS_OPTS);
console.log('redis ready')
const canvas_name = 'canvas-bitfield';
client.del(canvas_name)
client.send_command("bitfield",[canvas_name,'SET','u4','#0',10,'OVERFLOW','FAIL'])
client.send_command('bitfield',[canvas_name,'GET','u4',0],redis.print) //reply:10
client.get(canvas_name,function(err, reply){
if(err){console.log(err)}
const buff = Buffer.from(reply.toString());
const view8 = new Uint8Array(buff);
console.log(view8) //Uint8Array(3) [239, 191, 189]
})
這是無關的,但我會指出它:send_command是*異步*。所以你應該使用callback參數來確保在send_command真正完成之後執行任何後續命令:'client.send_command(command,args,callback)' –