这是我参与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
})
})
});