企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# **api** ## **nodeJS 相关 redis api** ### **string 字符串** |命令|行为|返回值|使用示例(略去回调函数)| |---|---|---|---| |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|将元素从一个集合移动到另一个集合,并返回是否成功|1/0||smove('src-key', 'dest-key', 'value')| |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|获取散列包含的键值对|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')| ### **redis其他常用命令汇总** #### **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模块** 在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"); */ ```