Redis 常用于跨进程、跨服务器的数据缓存服务,如:使用Redis存储Session会话数据等。
Node.js 中了连接Redis要使用redis
(node_redis
)模块,该模块是一个完整的、功能丰富的Node.js Redis 客户端,它支持所有Redis命令且注重于高性能特征。
模块安装:npm install redis
redis的连接和断开
连接redis
使用createClient()
来创建redis连接
1 | const client = redis.createClient({ |
断开连接
redis.quit()
- 退出
发送QUIT
命令,并在命令处理结束后断开连接。如果这时进行重连,则会在结束后重新连接。redis.end(flush)
- 强制断开
强制断开Redis服务器的连接。注意,这个方法不会等待所有的回复被解析,如果你想优雅的退出,就应该使用上面的redis.quit()
方法。flush
命令用于设置其它命令的处理方式。如果不关心其它命令,应该设置为true
;如果希望其它命令静默失败,应该设置为false
。
在生产环境中,一般不应将redis.end()
方法的flush
设置为true
。
操作redis
string类型
client.set(key, value, function (err, replay){})
- 设置值client.get(key, function(err,value){}
- 获取值,如果没有设置则返回null
hash类型
Hash数据结构即数据存储为field、value的格式存储,可以将field、value看成一对键值对结构
client.hmset(key, obj, callback)
通过一个对象设置多个值1
2
3
4client.hmset('test',{
'key1':'value1',
'key2': 'value2'
})client.hgetall(key, callback)
从HGETALL
命令中返回的响应信息,会被node_redis转换为一个JavaScript对象结果为:1
2
3client.hgetall('test', (err, result) =>{
console.log(result)
}){ field1: 'value1', field2: 'value2' }
client.hset(key, field, value, callback)
设置单一值client.hget(key, field, callback)
获取单一值client.hkeys(key, callback)
获取所有field
返回类型为数组
list类型
列表用于储存多个有序的字符串,列表是一种比较灵活的数据结构,可以充当栈和队列的角色
lpush(key, values, callback)
在key列表中list中添加元素,每个新的元素都添加到列表的最左边类似的:1
2client.lpush('test', 1,2,3)
// 保存顺序为3,2,1rpush(key, values, callback)
表示从右向左添加元素lpushx(key, values, callback
在key对应的list中添加元素,只有key已经存在时,值添加到列表的最左边
类似的:rpushx(key, values, callback)
表示从右向左添加元素len(key, callback)
获取key列表中元素个数lpop(key, callback)
在key对应的列表的左侧获取第一个元素并在列表中移除,返回值则是第一个元素
类似的,rpop(key, callback)
表示从右向左操作lset(key, index, value, callback)
对key对应的list中的某一个索引位置重新赋值ltrim(key, start, stop, callback)
删除索引位置从start到stop的元素lrem(key, count, value, callback
删除count数量的值为value的元素
count:要删除的元素数量
sadd(name,values,callback)
网name对应的集合中添加元素scard(name, callback)
获取name对应的集合中元素个数srandmember(name, numbers, callback)
从name对应的集合中随机获取numbers
个元素srem(name, values, callback)
在name对应的集合中删除某些值
公共可用操作
exists(key, callback)
检测redis中是否存在keydel(key, callback)
删除redis中任意类型数据type(key, callback)
获取key所对应的类型
使用实例
1 | const redis = require("redis"); |