NodejsRedis全部操作⽅法
// redis配置参数
let redis_config = {
"host": "127.0.0.1",
"port": 6379
};
let password = ''; //密码
let dbs = {};
const redis = require("redis");
const client = ateClient(redis_config);
if (password) {
client.auth(password, function () {
console.log("连接成功")
});
}
<("error", err => console.log('------ Redis connection failed ------' + err))
.on('connect', () => console.log('------ Redis connection succeed ------'));
client.set('hello','This is a value');
client.del('key1')
<('hello');
/
/stirng
命令⾏为返回值使⽤⽰例(略去回调函数)
set 设置存储在给定键中的值 OK set('key', 'value')
get 获取存储在给定键中的值 value/null get('key')
del 删除存储在给定键中的值(任意类型) 1/0 del('key')
incrby 将键存储的值加上整数increment incrby('key', increment)
decrby 将键存储的值减去整数increment decrby('key', increment)
incrbyfloat 将键存储的值加上浮点数increment incrbyfloat('key', increment)
append 将值value追加到给定键当前存储值的末尾 append('key', 'new-value')
getrange 获取指定键的index范围内的所有字符组成的⼦串 getrange('key', 'start-index', 'end-index')
setrange 将指定键值从指定偏移量开始的⼦串设为指定值 setrange('key', 'offset', 'new-string')
/
/list
命令⾏为返回值使⽤⽰例(略去回调函数)
rpush 将给定值推⼊列表的右端当前列表长度 rpush('key', 'value1' [,'value2']) (⽀持数组赋值)
lrange 获取列表在给定范围上的所有值 array lrange('key', 0, -1) (返回所有值)
lindex 获取列表在给定位置上的单个元素 lindex('key', 1)
lpop 从列表左端弹出⼀个值,并返回被弹出的值 lpop('key')
rpop 从列表右端弹出⼀个值,并返回被弹出的值 rpop('key')
ltrim 将列表按指定的index范围裁减 ltrim('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' [,'])
sinter 返回那些同事存在于所有集合中的元素(交集) sinter('key1', 'key2'[, 'key3', ...])
sinterstore 将sinter操作的结果存储到指定的键中 sinterstore('dest-key', 'key1', 'key2' [,'])
sunion 返回那些⾄少存在于⼀个集合中的元素(并集) sunion('key1', 'key2'[, 'key3', ...])
sunionstore 将sunion操作的结果存储到指定的键中 sunionstore('dest-key', 'key1', 'key2' [,'])
/
/hash
命令⾏为返回值使⽤⽰例(略去回调函数)
命令⾏为返回值使⽤⽰例(略去回调函数)
hset 在散列⾥⾯关联起给定的键值对 1(新增)/0(更新) hset('hash-key', 'sub-key', 'value') (不⽀持数组、字符串)
hget 获取指定散列键的值 hget('hash-key', 'sub-key')
hgetall 获取散列包含的键值对 json hgetall('hash-key')
hdel 如果给定键存在于散列⾥⾯,则移除这个键 hdel('hash-key', 'sub-key')
hmset 为散列⾥⾯的⼀个或多个键设置值 OK hmset('hash-key', obj)
hmget 从散列⾥⾯获取⼀个或多个键的值 array hmget('hash-key', array)
hlen 返回散列包含的键值对数量 hlen('hash-key')
hexists 检查给定键是否在散列中 1/0 hexists('hash-key', 'sub-key')
hkeys 获取散列包含的所有键 array hkeys('hash-key')
hvals 获取散列包含的所有值 array hvals('hash-key')
hincrby 将存储的键值以指定增量增加返回增长后的值 hincrby('hash-key', 'sub-key', increment) (注:假如当前value不为为字符串,则会⽆输出,程序停⽌在此处) hincrbyfloat 将存储的键值以指定浮点数增加
//zset
命令⾏为返回值使⽤⽰例(略去回调函数)
zadd 将⼀个带有给定分⽀的成员添加到有序集合中 zadd('zset-key', score, 'key') (score为int)
zrange 根据元素在有序排列中的位置,从中取出元素
zrangebyscore 获取有序集合在给定分值范围内的所有元素
zrem 如果给定成员存在于有序集合,则移除
zcard 获取⼀个有序集合中的成员数量有序集的元素个数 zcard('key')
keys命令组
命令⾏为返回值使⽤⽰例(略去回调函数)
del 删除⼀个(或多个)keys 被删除的keys的数量 del('key1'[, 'key2', ...])
exists 查询⼀个key是否存在 1/0 exists('key')
expire 设置⼀个key的过期的秒数 1/0 expire('key', seconds)
pexpire 设置⼀个key的过期的毫秒数 1/0 pexpire('key', milliseconds)
expireat 设置⼀个UNIX时间戳的过期时间 1/0 expireat('key', timestamp)
pexpireat 设置⼀个UNIX时间戳的过期时间(毫秒) 1/0 pexpireat('key', milliseconds-timestamp)
persist 移除key的过期时间 1/0 persist('key')
sort 对队列、集合、有序集合排序排序完成的队列等 sort('key'[, pattern, limit offset count])
flushdb 清空当前数据库
/
/ redis事务(⽀持连贯操作)
/*
* 常⽤命令
* multi() 事务
* exec([callback]) 执⾏事务
* discard 放弃事务
* watch 监视指定的键值
* unwatch 取消监视
*
* 命令⽤法:
* MULTI
* MULTI 命令⽤于开启⼀个事务,它总是返回 OK 。
* MULTI 执⾏之后,客户端可以继续向服务器发送任意多条命令,
* 这些命令不会⽴即被执⾏,⽽是被放到⼀个队列中,当 EXEC命令被调⽤时,所有队列中的命令才会被执⾏。
* 另⼀⽅⾯,通过调⽤ DISCARD ,客户端可以清空事务队列,并放弃执⾏事务。
* EXEC
* EXEC 命令的回复是⼀个数组,数组中的每个元素都是执⾏事务中的命令所产⽣的回复。
* 其中,回复元素的先后顺序和命令发送的先后顺序⼀致。
* DISCARD
* 当执⾏ DISCARD 命令时,事务会被放弃,事务队列会被清空,并且客户端会从事务状态中退出
* WATCH
* WATCH 命令可以为 Redis 事务提供 check-and-set (CAS)⾏为。
* 被 WATCH 的键会被监视,并会发觉这些键是否被改动过了。
* 如果有⾄少⼀个被监视的键在 EXEC 执⾏之前被修改了,那么整个事务都会被取消,
* EXEC 返回nil-reply来表⽰事务已经失败。
*
* WATCH 使得 EXEC 命令需要有条件地执⾏:
* 事务只能在所有被监视键都没有被修改的前提下执⾏,如果这个前提不能满⾜的话,事务就不会被执⾏。
*
* WATCH 命令可以被调⽤多次。对键的监视从 WATCH 执⾏之后开始⽣效,直到调⽤ EXEC 为⽌。
*
*
* 当 EXEC 被调⽤时,不管事务是否成功执⾏,对所有键的监视都会被取消。 * 另外,当客户端断开连接时,该客户端对键的监视也会被取消。
* UNWATCH
* 使⽤⽆参数的 UNWATCH 命令可以⼿动取消对所有键的监视。
*
* 使⽤⽰例:
* 1、连贯操作
* client.multi().incr('key').incr('key').exec(function (err, reply) {});
*
* 2、常规操作
* multi = client.multi();
* multi.incr('key');
* multi.incr('key');
* (function (err, replies) {});
*
* 3、取巧操作
* client.multi([
* ["mget", "multifoo", "multibar", redis.print],
* ["incr", "multifoo"],
* ["incr", "multibar"]
* ]).exec(function (err, replies) {
* console.log(replies);
* });
*
*/
// 事件监听
/*
* 事件:ready、connect、reconnecting、end、warning、error
* 执⾏顺序: ready > connect > end(quit触发)
* error事件需要设置监听(必选)
*
* 使⽤⽰例:
* ("ready", function(err) {
* if (err) return false;
js获取json的key和value* console.log("ready");
* });
*/
<("error", function (err) {
console.log("Error " + err);
});
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论