Node.js操作Redis
安装Redis
先来安装Redis,我学习的时候是在自己的Windows上学习的。Windows操作如下
下载地址:https://github.com/MSOpenTech/redis/releases。
新建一个Redis文件夹,进到这个文件夹里解压,然后cmd进入到这个文件夹中,开启Redis服务
指令为 redis-server.exe redis.windows.conf
开始
Hello World
先来安装一个依赖:npm install redis,然后可以创建server.js文件写一点测试代码
//server.js
const redis = require('redis')
const client = redis.createClient(6379,'localhost')
client.set('hello','world')
client.get('hello',(err,value)=>{
console.log('redis get hello ',value)
})读对象
如果直接读的话会报错,这里可以重写一下toString()方法
Object.prototype.toString = function(){
return JSON.stringify(this)
}数据结构
字符串-String
- set 设置存储在给定键中的值
set('key', 'value') - get 获取存储在给定键中的值
get('key') - del 删除存储在给定键中的值(任意类型)
del('key') - append 将值value追加到给定键当前存储值的末尾
append('key', 'new-value')
列表-List
List是一个双向链表
- del 清除数据
- rpush 从右端插入一条数据
- lpush 从左端插入一条数据
- lpop 从左端删除一条数据
- rpop 从右端删除一条数据
- lrange 从两边取值
栗子:
const redis = require('redis')
const client = redis.createClient(6379, 'localhost')
//先清除数据
client.del('testLists');
client.rpush('testLists', 'h');
client.rpush('testLists', 'e');
client.rpush('testLists', 'l');
client.rpush('testLists', 'l');
client.rpush('testLists', 'o');
client.lpop('testLists', function (err, value) {
console.log(value); //h
})
client.rpop('testLists', function (err, value) {
console.log(value); //o
})
client.lrange('testLists', 0., -1, function (err, lists) {
console.log(lists);//['e','l','l']
})集合-Set
- sadd 将给定元素添加到集合
sadd('key', 'value1'[, 'value2', ...]) //(不支持数组赋值)(元素不允许重复) - smembers 返回集合中包含的所有元素 smembers('key')
- sismenber 检查给定的元素是否存在于集合中 1/0
sismenber('key', 'value') - srem 如果给定的元素在集合中,则移除此元素
srem('key', 'value') - scad 返回集合包含的元素的数量
sacd('key') - spop 随机地移除集合中的一个元素,并返回此元素
spop('key')
散列-Hash
- hset 在散列里面关联起给定的键值对
hset('hash-key', 'sub-key', 'value') //(不支持数组、字符串) - hget 获取指定散列键的值
hget('hash-key', 'sub-key') - hgetall 获取散列包含的键值对
hgetall('hash-key') - hdel 如果给定键存在于散列里面,则移除这个键
hdel('hash-key', 'sub-key') - hmset 为散列里面的一个或多个键设置值
hmset('hash-key', obj) - hmget 从散列里面获取一个或多个键的值
hmget('hash-key', array) - hlen 返回散列包含的键值对数量
hlen('hash-key') - hexists 检查给定键是否在散列中
hexists('hash-key', 'sub-key') - hkeys 获取散列包含的所有键
hkeys('hash-key') - hvals 获取散列包含的所有值
hvals('hash-key')
有序集合-zset
- zadd 将一个带有给定分支的成员添加到有序集合中
zadd('zset-key', score, 'key') //(score为int) - zrange 根据元素在有序排列中的位置,从中取出元素
- zrangebyscore 获取有序集合在给定分值范围内的所有元素
- zrem 如果给定成员存在于有序集合,则移除
- zcard 获取一个有序集合中的成员数量 zcard('key')
查看12道真题和解析