node使用redis

api

nodeJS 相关 redis api

string 字符串

命令行为返回值使用示例(略去回调函数)
set设置存储在给定键中的值OKset('key', 'value')
get获取存储在给定键中的值value/nullget('key')
del删除存储在给定键中的值(任意类型)1/0del('key')
incrby将键存储的值加上整数incrementincrby('key', increment)
decrby将键存储的值减去整数incrementdecrby('key', increment)
incrbyfloat将键存储的值加上浮点数incrementincrbyfloat('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获取列表在给定范围上的所有值arraylrange('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/0sismenber('key', 'value')
srem如果给定的元素在集合中,则移除此元素1/0srem('key', 'value')
scad返回集合包含的元素的数量sacd('key')
spop随机地移除集合中的一个元素,并返回此元素spop('key')
smove将元素从一个集合移动到另一个集合,并返回是否成功1/0
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', ...)

hash 散列

命令行为返回值使用示例(略去回调函数)
hset在散列里面关联起给定的键值对1(新增)/0(更新)hset('hash-key', 'sub-key', 'value') (不支持数组、字符串)
hget获取指定散列键的值hget('hash-key', 'sub-key')
hgetall获取散列包含的键值对jsonhgetall('hash-key')
hdel如果给定键存在于散列里面,则移除这个键hdel('hash-key', 'sub-key')
hmset为散列里面的一个或多个键设置值OKhmset('hash-key', obj)
hmget从散列里面获取一个或多个键的值arrayhmget('hash-key', array)
hlen返回散列包含的键值对数量hlen('hash-key')
hexists检查给定键是否在散列中1/0hexists('hash-key', 'sub-key')
hkeys获取散列包含的所有键arrayhkeys('hash-key')
hvals获取散列包含的所有值arrayhvals('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')

redis其他常用命令汇总

keys命令组
命令行为返回值使用示例(略去回调函数)
del删除一个(或多个)keys被删除的keys的数量del('key1'[, 'key2', ...])
exists查询一个key是否存在1/0exists('key')
expire设置一个key的过期的秒数1/0expire('key', seconds)
pexpire设置一个key的过期的毫秒数1/0pexpire('key', milliseconds)
expireat设置一个UNIX时间戳的过期时间1/0expireat('key', timestamp)
pexpireat设置一个UNIX时间戳的过期时间(毫秒)1/0pexpireat('key', milliseconds-timestamp)
persist移除key的过期时间1/0persist('key')
sort对队列、集合、有序集合排序排序完成的队列等sort('key'[, pattern, limit offset count])
flushdb清空当前数据库

使用

创建redis模块

在modules内创建RedisModule.js

const redis = require("redis");

const client = redis.createClient({
	host: "localhost",
	port: 6379,
	password: "",
});
module.exports =  client;

链接redis客户端

const redisModule = require("./modules/RedisModule");
redisModule.connect();

测试

const client = require("../modules/RedisModule");
/**
 * 存值
 */
// client.set("name1", "zhangsan", (err, res) => {
// 	console.log(res);
// });

/**
 * 取值
 */
const name = client.get("name", (err, res) => {
	console.log(res);
});
name.then((res) => {
	console.log("res", res);
});

/**
 * 删除值
 */
// client.del("name1", (err, res) => {
// 	console.log(res);
// });

/**
 * 关闭连接
 */
// client.quit();

/**
 * 列表
 */
// client.rPush("list", "1", (err, res) => {
// 	console.log(res);
// });

/**
 * 取列表第一个值, 返回这个值,修改原数据
 */
// let first = client.lPop("list", (err, res) => {
// 	console.log(res);
// });
// first.then((res) => {
// 	console.log("res", res);
// });
// console.log(first);

/**
 * 取列表最后一个值, 返回这个值,修改原数据
 */
// let last = client.rPop("list", (err, res) => {
// 	console.log(res);
// });
// last.then((res) => {
// 	console.log("res", res);
// });

/**
 * 获取列表给定范围的所有值, 这里为0到2,  -1表示最后一个值
 */
// let list = client.lRange("list", 0, 2, (err, res) => {
// 	console.log(res);
// });
// list.then((res) => {
// 	console.log("res", res);
// });

/**
 * SET集合
 */
// 存
// client.sAdd("set", "2", (err, res) => {
// 	console.log(res);
// });

// 取 全部
// let setList = client.sMembers("set", (err, res) => {
// 	console.log(res);
// });
// setList.then((res) => {
// 	console.log("res: ", res);
// });

// 如果给定的元素在集合中,则移除此元素|1/0
// let isMember = client.sRem("set", "3", (err, res) => {
// 	console.log(res);
// });
// isMember.then((res) => {
// 	console.log("res", res);
// });

执行

require("./redis/test");

封装

var redis = require("redis");
var client = redis.createClient();

client.on("error", function (err) {
	console.log("Error :", err);
});

client.on("connect", function () {
	console.log("Redis连接成功.");
});
client.connect();
class db {
	set(key, value, expire, callback) {
		client.set(key, value, function (err, result) {
			if (err) {
				console.log(err);
				callback(err, null);
				return;
			}

			if (!isNaN(expire) && expire > 0) {
				client.expire(key, parseInt(expire));
			}

			callback(null, result);
		});
	}
	get(key) {
		return client.get(key, (err, value) => {
			if (err) {
				return err;
			}
			return value;
		});
	}
	del(key) {
		client.del(key);
	}
	client() {
		return client;
	}
}

module.exports = new db();

/**
 * 使用
 * const RedisUtil = require("../../util/redis");
 * // 取值
 * let neme = RedisUtil.get("name");
 * neme.then((res) => {
 *	 console.log("res: ", res);
 * });
 * // 设置
 * RedisUtil.set("name", "张三", 60)
 * // 删除
 * RedisUtil.del("name");
 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值