NodeJS的Redis(二)

386 阅读2分钟

这是我参与11月更文挑战的第8天,活动详情查看:2021最后一次更文挑战

Redis数据类型汇总

List 列表

命令行为  返回值 使用示例(略去回调函数)
rpush 将给定值推入列表的右端                     当前列表长度      rpush('key', 'value1' [,'value2']) (支持数组赋值)
lrange获取列表在给定范围上的所有值          array                  lrange('key', 0, -1) (返回所有值)
lindex获取列表在给定位置上的单个元素                                 lindex('key', 1)
lpop  从列表左端弹出一个值,并返回被弹出的值              lpop('key')
rpop  从列表右端弹出一个值,并返回被弹出的值              rpop('key')
ltrim 将列表按指定的index范围裁减                                                 trim('key', 'start', 'end')

Set 集合

命令                 行为                                              返回值                     使用示例(略去回调函数) 
sadd        将给定元素添加到集合                             插入元素数量sadd('key', 'value1'[, 'value2', ...]) (不支持数组赋值)(元素不允许重复) 
smembers    返回集合中包含的所有元素                      array(无序)smembers('key') 
sismenber   检查给定的元素是否存在于集合中 1/0                         sismenber('key', 'value') 
srem        如果给定的元素在集合中,则移除此元素 1/0              srem('key', 'value') 
scad        返回集合包含的元素的数量                                   sacd('key')    
spop        随机地移除集合中的一个元素,并返回此元素                spop('key') 
smove       集合元素的迁移                                                                 smove('source-key', 'dest-key', 'item') 
sdiff       返回那些存在于第一个集合,但不存在于其他集合的元素(差集)   sdiff('key1', 'key2'[, 'key3', ...])    
sdiffstore  将sdiff操作的结果存储到指定的键中                         sdiffstore('dest-key', 'key1', 'key2' [,'key3' ,...])    
sinter      返回那些同事存在于所有集合中的元素(交集)               sinter('key1', 'key2'[, 'key3', ...]) 
sinterstore 将sinter操作的结果存储到指定的键中                        sinterstore('dest-key', 'key1', 'key2' [,'key3' ,...])   
sunion      返回那些至少存在于一个集合中的元素(并集)               sunion('key1', 'key2'[, 'key3', ...]) 
sunionstore 将sunion操作的结果存储到指定的键中                        sunionstore('dest-key', 'key1', 'key2' [,'key3' ,...])  

List列表和Set集合案例

const redis = require('redis');
const client = redis.createClient( 6379, '127.0.0.1');

// List列表类型
client.send_command('lset',['mylist',0,1], function(err,data) {
  console.log(data);          // OK
})
client.send_command('lpush',['mylist', 'one'], function(err, data) {
  console.log(dada);          //OK 
})

// 使用命令行获取对应的索引下的结果
// lindex mylist 0    'one'
// lindex mylist 1   '1'
// lindex mylist 2   'xxx'
// lindex mylist 3   'xxx'

// Set集合类型
let arry1 = ['mysql', 'redis'];
let arry2 = ['mongo', 'redis'];
client.sadd('arry1', arry1, function (err, data) {
  client.smembers('arry1', function (err, data) {
    console.log(toString.call(data));               // [object Array]
    console.log('smemers:' + data);                 // 获取set中的成员, ['redis,mysql]  
  })
  client.sadd('arry2', arry2, function (err, data) {
    client.sinter('arry1', 'arry2', function (err, data) {
      console.log('sinter:' + data)                    //交集: sinter:redis
    });
    client.sunion('arry1', 'arry2', function (err, data) {
      console.log('sunion:' + data)                    // 并集: sunion:mongo,mysql,redis
    });
    client.sdiff('arry1', 'arry2', function (err, data) {
      console.log('SDIFF:' + data)                     // 补集: SDIFF:mysql
    })
  })
});