电脑做服务器搭建网站,京东商城网站建设教程,wordpress博客收录查询,微信调查问卷小程序怎么做一、Redis 简介
无论是什么类型的应用#xff0c;都少不了和数据打交道。尤其是一些复杂的应用场景#xff0c;都少不了一个高效可靠的数据库。例如日常开发中最常见的 MySQL 等关系型数据库#xff0c;让数据的存储、检索轻松简单起来#xff0c;甚至可以轻松地处理百万量…一、Redis 简介
无论是什么类型的应用都少不了和数据打交道。尤其是一些复杂的应用场景都少不了一个高效可靠的数据库。例如日常开发中最常见的 MySQL 等关系型数据库让数据的存储、检索轻松简单起来甚至可以轻松地处理百万量级的数据。而从广义上讲数据库可以分为二大类分别是关系型数据库与非关系型数据库上一期我们讲过的 SQLite 即为关系型数据库而本文的 Redis 则是非关系型数据库是一个以 BSD 协议发行的、开源免费的并具备极高性能的键值数据库。同时 Redis 也是业务应用中最为常见的“缓存”数据库。为了方便应用开发 EdgerOS 同样引入了 Redis 的客户端模块满足不同业务场景下对数据处理的需求开发者可以使用改客户端方便地连接并使用 Redis 服务器。
二、引入模块
EdgerOS 将 Redis 的客户端封装在了 redis 模块中在开发中要使用时需要先引入该模块
const redis require(redis);三、创建客户端
使用 createClient 方法来创建 Redis 客户端调用此方法会返回一个 RedisClient 的对象 redis.createClient([options]) options {Object} 选项 returns: {Redis} 返回一个 RedisClient 的对象 示例如下
const redis require(redis);
const client redis.createClient({ host: 10.4.0.180, port: 6379,detect_buffers: true
});
// or
const client redis.createClient({host: 10.4.0.180,port: 6379,retry_strategy: function (options) {if (options.error options.error.code ECONNREFUSED) {// 发生 ECONNREFUSED 错误时候断开链接并刷新所有命令return new Error(The server refused the connection);}if (options.total_retry_time 1000 * 60 * 60) {// 发生‘重连超时’错误时候断开链接并刷新所有命令return new Error(Retry time exhausted);}if (options.attempt 10) {// 断开连接并抛出一个错误return undefined;}// 重连之后return Math.min(options.attempt * 100, 3000);},});相关选项说明 hostRedis 服务器的地址 portRedis 服务器的端口 detect_buffers回复是否使用 Buffer 选项 retry_strategy将选项对象作为参数的一种函数
四、保存与读取数据
使用 hmset 方法来保存数据 允许存储多组数据 client.hmset(hash, key1, val1, …keyN, valN[, callback]) hash {String} Redis 键 key {String} 字段的键 val {String | Buffer | Number | Date} 字段的值 callback {Function} 回调函数 error {Error} 错误对象 使用 hgetall 方法来读取数据 client.hgetall(hash[, callback]) hash {String} Redis 键 callback {Function} 回调函数 error {Error} 错误对象 value {Object} 获取的结果 示例如下
const redis require(redis);
const client redis.createClient({ host: 10.4.0.180, port: 6379 });client.hmset(key, foo, bar, hello, world);client.hgetall(key, function (err, value) {console.log(value.foo); // barconsole.log(value.hello); // world
});五、订阅与发布
使用 publish 方法进行客户端消息发布 client.publish(channel, message) channel {String} 发布的路径 message {String | Number | Buffer | Date} 发布的消息 使用 subscribe 方法对服务端的消息进行订阅 client.subscribe(channel) channel {String} 订阅的路径 示例如下
const redis require(redis);const subscriber redis.createClient({ host: 10.4.0.180, port: 6379 });
const publisher redis.createClient({ host: 10.4.0.180, port: 6379 });let messageCount 0;subscriber.on(subscribe, function (channel, count) {publisher.publish(a channel, a message);publisher.publish(a channel, another message);
});subscriber.on(message, function (channel, message) {messageCount 1;console.log(Subscriber received message in channel channel : message);if (messageCount 2) {subscriber.unsubscribe();subscriber.quit();publisher.quit();}
});subscriber.subscribe(a channel);至此Redis 客户端的主要功能与实现相信大家都有一个初步的认识由于篇幅所限不能完整详细的阐述 Redis Client 模块的所有功能有兴趣的同学可以从我们 EdgerOS 官网获取完整信息。而我们EdgerOS 除了提供 Redis 客户端以外 还有像非关系型数据库中的 Mysql 客户端等 都可在官网中获取相关信息希望本文可以对您的应用开发有所裨益。