我有大量的bitset数据,存储在db中。我想将它上传到redis bitset,所以我可以对它执行位操作。有没有办法从redis-cli或javascript代码上传这些数据?我正在使用bitset.js npm模块从db。
加载我程序中的bitset一种显而易见的方法是在我的javascript代码中迭代我的bitset数组,并多次调用redis.setbit(...)。有没有办法一次上传所有这些?如果是这样的话?
答案 0 :(得分:1)
Redis中的bitset实际上只是一个字符串,因此您可以直接分配给它。字符串中的位是位域的位,按从左到右的顺序设置。即将位号0设置为1会产生二进制数10000000
,或者产生值为128的单个字节。当Redis打印时,这看起来像"\x80"
,您可以通过运行{{1}来自行查看然后在Redis中setbit foo 0 1
。
因此,为了构造要发送给Redis的正确字符串,我们只需要读取BitSet中的位并构造一个缓冲区,一次一个字节,并设置适当的位。
下面是使用bitset.js和redis npm模块将JavaScript中的BitSet传输到Redis密钥的代码。请注意,此代码假定位域适合内存。
get foo